Adam Bowling [Fri, 23 Jul 2021 20:00:35 +0000 (16:00 -0400)]
LP1937875: Remove GitHub reference from package.js
Removes the call to GitHub (required under legacy circumstances),
since it can cause some machines lacking SSH keys for GitHub to
fail when "npm install" is run for the AngularJS web client.
Signed-off-by: Adam Bowling <abowling@emeralddata.net> Signed-off-by: Jason Boyer <JBoyer@equinoxOLI.org>
LP#1922273: (follow-up) adjust positioning of filters
This patch puts all of the filters in a single row div
but preserves the styling that displays up to four columns
of them on large screens. This way, if you use the library
setting to hide some of the filters, the ones that remain
won't end up randomly appearing in two rows unless you've
retained more than four of them.
Jeff Davis [Mon, 3 May 2021 22:21:02 +0000 (15:21 -0700)]
LP#1922273: use a setting to determine which advanced search filters are displayed in staff catalog
The TPAC allows admins to customize which search filters are available
in advanced search. This commit adds an org unit setting,
eg.staffcat.search_filters, which lets you customize search filters in
the staff catalog. The setting value should be an array of filter
types, e.g. ["item_lang","audience","lit_form"]. The standard set of
search filters is used when the settings are not set.
Signed-off-by: Jeff Davis <jdavis@sitka.bclibraries.ca> Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org> Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>
Adds OPAC visible column to holdings grid in the Angular catalog.
Signed-off-by: Dan Briem <dbriem@wlsmail.org> Signed-off-by: Jennifer Pringle <jennifer.pringle@bc.libraries.coop> Signed-off-by: Bill Erickson <berickxx@gmail.com>
Jason Boyer [Fri, 20 Aug 2021 18:00:25 +0000 (14:00 -0400)]
LP1908614: Show the Age Hold Protection name in the staff catalog
Signed-off-by: Jason Boyer <JBoyer@equinoxOLI.org> Signed-off-by: Michele Morgan <mmorgan@noblenet.org> Signed-off-by: Bill Erickson <berickxx@gmail.com>
Jessica Woolford [Wed, 17 Mar 2021 20:31:30 +0000 (16:31 -0400)]
LP1786971 z39.50 using TCN instead of ID
This patch switches the target to overlays to the bib ID instead of the
TCN. This allows overlays to work for sites where TCN and bib ID are not
the same.
Signed-off-by: Jessica Woolford <jwoolford@biblio.org>
LP1786971 Z39.50 TCN-Bib ID display and wording
This adds the TCN to the Z39.50 interface when a record is
marked for overlay and the TCN does not match the Bib ID.
Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org> Signed-off-by: Mary Llewellyn <mllewell@biblio.org> Signed-off-by: Bill Erickson <berickxx@gmail.com>
Disables and gray's out the place hold button on records in the
Angular catalog that are deleted or have no holdable copies
unless the user has the perm PLACE_UNFILLABLE_HOLD.
To test:
* Search for records with and without any copies
* Search for records with and without holdable copies
* Search as user with and without the permission
PLACE_UNFILLABLE_HOLD
Signed-off-by: Dan Briem <dbriem@wlsmail.org> Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org> Signed-off-by: Bill Erickson <berickxx@gmail.com>
When cloning a patron record, the address gets set to pending and cannot
be fixed until the new patron record is saved.
The address creation steps for cloned records are a little different if
the library setting "Patron Registration: Cloned patrons get address copy" is
set, so test with that enabled and disabled. In our system we have that setting
enabled.
The issue is that the values come in as a string like 't' or 'f' and need to be converted
to a boolean value. That is done in the normal address loading code, but wasn't in
the cloning code.
I also added in a fix for the city limits flag not getting cloned which seems
like an related issue. This seems like it was just cosmetic, the city limits
does get set when the record is saved, based on the parent records address.
Testing Plan:
Before change:
1. Enable "Cloned patrons get address copy" setting.
2. Open up a patron record that has a valid non pending address with city limits checked.
3. Save and Clone
4. Notice that the address in the new cloned record says pending.
5. Notice that the city limits checkbox isn't checked.
After change applied:
1. Enable "Cloned patrons get address copy" setting.
2. Open up a patron record that has a valid non pending address with city limits checked.
3. Save and Clone
4. Notice that the address in the new cloned record doesn't say pending.
5. Notice that the city limits checkbox is checked.
Jason Etheridge [Fri, 28 May 2021 20:25:22 +0000 (16:25 -0400)]
lp1905028 lost items and price versus acq cost
This feature adds two new library settings:
Use Item Price or Cost as Primary Item Value
Use Item Price or Cost as Backup Item Value
which intersect the behavior of these existing settings:
Charge lost on zero
Default Item Price
Minimum Item Price
Maximum Item Price
Each of these settings affect how item price is used in
various contexts and is not limited to "lost" items, but
can affect notices, fine rules, and billings for long
overdue and damaged items (as well as lost items).
By default, the price field on items is the only field
considered by these various uses, but if we set, for
example, "Use Item Price or Cost as Primary Item Value" to
"cost", then we'll use the cost field instead of the price
field.
Alternately, if we set the "Backup Item Value" to "cost"
and either leave the "Primary Item Value" setting unset or
set to "price", then we'll consider the price field first,
and if it is either unset/null or equal to 0 (and
"Charge lost on zero" is true), then it'll fall-through to
the cost field. We can also flip the behavior with these
settings and consider cost first and then price second.
Signed-off-by: Jason Etheridge <jason@EquinoxOLI.org> Signed-off-by: Garry Collum <gcollum@gmail.com> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Bill Erickson [Wed, 3 Jul 2019 18:34:39 +0000 (14:34 -0400)]
LP1752356 Offline expired patrons download date additions
Modify wording to clarify the date displayed is that of the block list
download and not necessarily the date the patron was flagged expired.
Avoid console errors when the file download date is not known -- edge
case where the code is updated but the block list was not updated in the
meantime.
Clean up some debug logging.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org> Signed-off-by: Jason Boyer <jboyer@equinoxOLI.org>
Mike Risher [Mon, 1 Jul 2019 15:56:17 +0000 (15:56 +0000)]
LP1752356 Offline block list date addition
In offline mode when checking out for an expired patron, we changed
the error message so that the last date the blocklist was downloaded
is displayed along with the patron barcode
Signed-off-by: Mike Risher <mrisher@catalyte.io> Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org> Signed-off-by: Jason Boyer <jboyer@equinoxOLI.org>
Mike Rylander [Tue, 9 Apr 2019 15:30:15 +0000 (11:30 -0400)]
LP#1823983: repeat_delay check removes event definition id filter
This bug has existed since the repeat_delay feature was added, but likely only
rarely was triggered because most events don't have a repeat_delay, and those
that do don't interact with the same target. However, as more repeatable event
definitions are created, inappropriate interaction becomes more likely.
In this commit we avoid overwriting the whole join condition clause, which
already contains an event definition id filter and needs to retain it.
Included is an unrelated change that uses the new-ish form of
interval_to_seconds that avoids DST boundary shifting issues by passing a
context DateTime object as the second parameter.
Signed-off-by: Mike Rylander <mrylander@gmail.com> Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>
LP1809157 SMS Carriers display not in alphabetical order
This alphabetizes the carrier display when editing the sms carrier in an existing hold.
It also adds the region to the name to make the interface consistent with other interfaces.
To Test:
1. Enable SMS options in the Library Settings.
2. Place a hold for a patron.
3. Use the Edit Notifications Settings. Enter an SMS number, if needed.
4. Drop-down the Carrier list - the list is not in alphabetical order.
5. Apply the patch and repeat 3-4.
Adds an info button next to Total Circs in the AngularJS staff
client Item Status screen. Clicking the button displays a
popover list of total circs by year.
Signed-off-by: Dan Briem <dbriem@wlsmail.org> Signed-off-by: Michele Morgan <mmorgan@noblenet.org> Signed-off-by: John Amundson <jamundson@cwmars.org> Signed-off-by: Jason Stephenson <jason@sigio.com>
Mike Rylander [Mon, 7 Jun 2021 19:57:32 +0000 (15:57 -0400)]
LP#1931162: DYM needs some situational optimization
For some data sets and some queries the Did You Mean search suggestion
logic can be much too slow. This is mainly in cases where a "misspelled"
word of sufficient length greater than the symspell prefix length is
checked against many short prefixes that have many long suggestions
attached to them.
This commit optimizes for that case in particular by testing the length
of suggestions and prefix keys against the user input to avoid
unnecessary tests. Futher, it captures the edit distance of suggestions
that pass that test in-line, avoiding expensive retesting, and caches
the short-cutoff edit distance when in low-verbosity mode to avoid
future different-but-not-too-different suggestions coming from the same
prefix key.
It additionally provides a general optimization by batching the capture
of suggest counts to avoid per-suggestion secondary lookups, and a
micro-optimization of ordering suggestions by length at distance cache
time.
Signed-off-by: Mike Rylander <mrylander@gmail.com> Signed-off-by: Shula Link <slink@gchrl.org> Signed-off-by: Jason Boyer <JBoyer@equinoxOLI.org>
Jason Etheridge [Tue, 9 Feb 2021 14:42:06 +0000 (09:42 -0500)]
lp1908439 Auto-override enhancment
This reworks the override action dialogs in the patron display for Check
Out and Items Out, and in the Circulation -> Renew Items interface. It
exposes the auto-override behavior as checkboxes giving staff more fine
grained control over which events are auto-forced or skipped upon
subsequent encounters. It also changes the Cancel action for batch
renewals to abort the remaining renewals in the batch, and makes it so
that new authorization credentials provided during such a batch will be
treated as an operator change for the entire batch. We also fix an
existing bug where events marked as already encountered for
auto-override could leak into other patron contexts via Patron Search.
Signed-off-by: Jason Etheridge <jason@EquinoxInitiative.org> Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Bill Erickson [Fri, 28 Aug 2020 19:16:20 +0000 (15:16 -0400)]
LP1888723 Item location select honors context org
The Angular <eg-item-location-select /> component now limits the
locations to display to those within the specified context org unit.
Instead of acting as the source of context org units, the permFilter org
units now act as limiters. This is done so that users with global
permissions won't by default result in retrieving all copy locations.
In cases where all are needed, however, they can still be retrieved by
setting the context org unit appropriately.
Bill Erickson [Mon, 12 Jul 2021 16:38:16 +0000 (12:38 -0400)]
LP1888723 Manage mode for single-copy edits notes/tags/alerts
When editing multiple items, always open the Item Alerts/Tags/Notes
dialogs in "manage" mode so users can see and edit existing values on
the edited copy.
In batch copy mode, these dialogs still only allow adding new values.
Bill Erickson [Mon, 12 Jul 2021 16:02:58 +0000 (12:02 -0400)]
LP1888723 Angular volcopy Apply All actions
Replace Save and SAve & Exit buttons in the Angular holdings editor with
'Apply All & Save' and 'Apply All, Save & Exit' buttons. With this,
staff are not required to click Apply on every change.
Bill Erickson [Wed, 3 Mar 2021 17:27:51 +0000 (12:27 -0500)]
LP1888723 Avoid defaulting CN labels for existing CN's
When a call number is loaded in the editor whose label is an empty
string, avoid applying a default values to the label so it's clear in
the UI that the call number label is blank.
When adding new call numbers to newly represented org units in the
volcopy holdings grid, ensure newly added org units are sorted
alphabetically by the org unit shortname.
Bill Erickson [Wed, 6 Jan 2021 18:10:58 +0000 (13:10 -0500)]
LP1888723 Volcopy strings should be global
Moving the <eg-string /> entries to the root of the tepmlate ensures all
references to those strings are defined / non-null. Otherwise, if the
user opts to hide a field which contained its own strings (e.g. loan
duration), the code would fail on null references, e.g.:
ERROR TypeError: Cannot read property 'text' of undefined
Bill Erickson [Tue, 5 Jan 2021 20:01:16 +0000 (15:01 -0500)]
LP1888723 Copy value counts separation
Provide a small amount of padding and light vertical border for the item
value summary counts so the counts don't blend with longer values (e.g.
long call numbers, etc.)
Bill Erickson [Mon, 28 Dec 2020 23:36:01 +0000 (18:36 -0500)]
LP1888723 Call number modification repair
Fixes an issues where modifying the call number label without modifying
any items would result in modifying the call number for all linked items
instead of the items actually loaded in the volcopy editor.
Also fixes a case where modifying call numbers failed to reflect
correctly in the catalog holdings view.
Bill Erickson [Tue, 15 Dec 2020 15:40:45 +0000 (07:40 -0800)]
LP1888723 Improve copy default status lookup
Fixes an issue where a) default copy statuses were not getting correctly
applied and b) the copy status org setting lookup was not correctly
serialized, which can lead to actor drone exhaustion on the server (see
also bug 1896285).
Bill Erickson [Mon, 14 Sep 2020 18:27:34 +0000 (14:27 -0400)]
LP1888723 Combobox avoids clearing selected for freetext
Follow-up to LP#1850547: Avoid clearing the selected item in the
combobox when selectedId is set to null in cases where freetext is
enabled and a freetext value is present.
Bill Erickson [Wed, 26 Aug 2020 22:09:11 +0000 (18:09 -0400)]
LP1888723 Angular volcopy UI mods and repairs
* Use plus/minus buttons for adding and removing vols and copies.
* Support adding multiple vols and copies via add-multi pop-over
* Support hiding the Parts column
* Move Generate Barcodes and Use Checkdigit to bottom row.
* Collapse Batch Actions row by default, state stored in preferences.
* Fix issue where loading a record with no holdings would result in a
mostly image page.
* Various display/layout repairs for showing/hiding columns
Teach the holdings grid in the staff catalog to correctly remove deleted
volumes from its tree when holding are modified in another tab.
To test, in the holding editor, modify a call number to have the same
label as another call number with the same owning org unit and save. On
the backend, this will result in one of the call numbers getting
deleted. Confirm the deleted call number no longer appears in the
holdings grid.
Jane Sandberg [Fri, 23 Jul 2021 17:15:13 +0000 (10:15 -0700)]
LP1906058: Course-term map interface only allow reasonable mappings
Different libraries will use different sets of course terms. In an
academic library context, for example, a consortium may include
libraries with very different start and end dates to their terms/semesters,
different numbers of terms/year, etc.
This commit changes the interface to only allow users to associate
a course with a term from the same library or one of its ancestors.
To test:
1. Create many courses and course terms and many different OUs.
2. On the course list, click "Terms taught". Associate some courses
and course terms. Make sure that you aren't able to associate your
course with any course terms that would not be reasonable for the
course's library.
3. Edit a course, and choose the Course terms tab. Continue to associate
courses and terms, and make sure the mappings are reasonable.
Galen Charlton [Sun, 15 Aug 2021 15:27:41 +0000 (11:27 -0400)]
LP#1905068: (follow-up) never initialize an OU ID to 1
This change has no effect on behavior, as defaultOuId's
initialization value always gets replaced with the user's
WS OU or the org root when the contructor is run, but
avoids any implication during code-reading that the top
of the OU tree can be assumed to have ID 1.
Jane Sandberg [Wed, 23 Jun 2021 23:59:51 +0000 (16:59 -0700)]
LP1905068: Add org-family-select to course list
To test:
1) Apply this patch
2) Admin > Local admin > Course reserves list
3) Check that the list defaults to courses available
at your workstation org unit
4) Check that, when you select ancestors, descendants,
or a different org unit, the course list updates
accordingly
5) Check that the list only displays org units for
which you have the MANAGE_RESERVES permission
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu> Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>
Add lp1923076-test-perl-scalar-return.t to the Perl live tests to test
a couple of back end calls affected by the changes in this branch.
These backend calls are those that are easily testable with Concerto
data.
Signed-off-by: Jason Stephenson <jason@sigio.com> Signed-off-by: Michele Morgan <mmorgan@noblenet.org> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Remove a block of commented code that was turned up while working on
this issue. This is in its own commit to make it easier to revert, if
necessary.
Signed-off-by: Jason Stephenson <jason@sigio.com> Signed-off-by: Michele Morgan <mmorgan@noblenet.org> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Add cast to int of scalar used on arrays in more places where it seems
necessary.
Signed-off-by: Jason Stephenson <jason@sigio.com> Signed-off-by: Michele Morgan <mmorgan@noblenet.org> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Jeff Davis [Thu, 8 Apr 2021 02:41:49 +0000 (19:41 -0700)]
LP#1923076: ensure length of empty array is treated as a number when retrieving hold counts
Thanks to Jason Stephenson for suggesting this solution.
Signed-off-by: Jeff Davis <jdavis@sitka.bclibraries.ca> Signed-off-by: Jason Stephenson <jason@sigio.com> Signed-off-by: Michele Morgan <mmorgan@noblenet.org> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Jane Sandberg [Tue, 13 Jul 2021 03:56:01 +0000 (20:56 -0700)]
LP1935693: Add circulation modifier to course page
Also makes some strings extractable for translation that
were previously missed.
To test:
1) Enable the course materials module
2) Add some courses
3) Add some materials to those courses, using a mix of
circulation modifiers
4) In the OPAC, use the Course Search to search for
your courses
5) Click on the course you created
6) Note that physical items associated with the course
display their circulation modifiers in the circulation
modifier column.
Mike Rylander [Mon, 28 Jun 2021 19:06:26 +0000 (15:06 -0400)]
LP#1895052: Avoid foreign targets when local items exist
This commit adds a new YAOUS that allows a pickup library to specify
that it does not want its holds to have foreign (prox > 0) copies
directly targeted if there is a local copy in an available status (on
the shelf). The setting is an interval, and after the age of the hold
has passed that interval, foreign direct targetting is allowed.
This does not change the calculation of the potential list, so
op-capture will be availalbe (all else being equal) without
retargetting.
This setting (circ.pickup_hold_stalling.hard) is meant to be used in
concert with the other new setting in the parent commit
(circ.pickup_hold_stalling.soft), and should generally have a value the
same or smaller than the soft setting. Doing this allows tiered
targetting, where no remote items are targeted via the hard setting for,
say, 3 days, where all capture is restricted to only the pickup, and
then, with a soft setting of 5 days, the next 2 days allow only direct
target capture of foreign copies. After 5 days, normal, global
targetting and op-capture resumes.
An alternative use for this setting is to ignore the parent-commit soft
setting and allow op-capture everywhere, but only direct targetting at
the pickup library. The effect of this, if used globally throughout an
entire Evergreen instance, would be that the pull list would only
represent pickup-local holds, but serendipitous scans of items that
could fill remote holds could capture for transit.
Signed-off-by: Mike Rylander <mrylander@gmail.com> Signed-off-by: Jason Stephenson <jason@sigio.com> Signed-off-by: John Amundson <jamundson@cwmars.org> Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>
This commit provides a new YAOUS that, when set, takes precedence over
the current "soft stalling interval" YAOUS. Instead of limiting capture
to items owned by the pickup library (or the directly targeted item)
based on the context of scanned item's circulating library, it instead
restricts op capture to holds that have a pickup library of the scanning
location when the hold is younger that the interval, base on the context
of the pickup location of each hold.
tl;dr: It allows the pickup library to control op capture stalling
rather than the circulating library of an arbitrary scanned item.
Signed-off-by: Mike Rylander <mrylander@gmail.com> Signed-off-by: Jason Stephenson <jason@sigio.com> Signed-off-by: John Amundson <jamundson@cwmars.org> Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>