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 [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 [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.
Somewhere along the way, openils_dojo.js was removed,
but references remained. This removes them, hopefully
helping to speed up page loads.
Signed-off-by: Chris Sharp <csharp@georgialibraries.org> Signed-off-by: Jeff Davis <jdavis@sitka.bclibraries.ca> Signed-off-by: Jason Stephenson <jason@sigio.com>
Mike Risher [Thu, 22 Oct 2020 20:19:51 +0000 (20:19 +0000)]
LP1843969 Composite Attribute Entry Defs
Create a port of the Coded Value Maps UI from Angular JS to
Angular. Allow creation and edits of the Composite Attribute
Entry Definitions.
Signed-off-by: Mike Risher <mrisher@catalyte.io> Signed-off-by: Jason Boyer <boyer.jason@gmail.com> Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
This commit adds Shibboleth integration to Evergreen for use in the
OPAC. Using Shibboleth, libraries can authenticate patrons against a
wide variety of 3rd party services, using many different protocols and
standards.
Several settings control if, when and how to make use of the Shibboleth
integration:
* Enable Shibboleth SSO for the OPAC
- The main on/off switch.
* Allow both Shibboleth and native OPAC authentication
- By default only one or the other will be allowed. This enables both
native and Shibboleth login.
* Log out of the Shibboleth IdP
- If supported by the IdP configured for use on the other side of
Shibboleth, this tells Evergreen to tell Shibboleth to log out of
the IdP on Evergreen logout.
* Shibboleth SSO Entity ID
- If multiple IdPs are configured for Shibboleth, and available to a
particular hostname, this setting defines the one to use for a
given context org unit.
* Evergreen SSO matchpoint
- The Evergreen-side user field to use when looking up the patron
after successful SSO login.
* Shibboleth SSO matchpoint
- The Shibboleth-side field, defined in the attribute map, that
contains the IdP user identifier value used to look up the Evergreen
patron.
Two apache sesttings control how Evergreen interacts with Shibboeth:
* SetEnv sso_loc XXX, which acts in a way analogous to the physical_loc
environment variable to define the context OU for SSO settings.
* ShibRequestSetting applicationId XXX, which helps Shibboleth identify
the correct set of entity ID and attribute mapping configuration.
Additional Shibboleth-focused documentation and examples will be
provided for system administrators.
Signed-off-by: Mike Rylander <mrylander@gmail.com> Signed-off-by: Christine Burns <christine.burns@bc.libraries.coop> Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Terran McCanna [Thu, 25 Feb 2021 14:58:23 +0000 (09:58 -0500)]
LP#1916904 Bootstrap OPAC: Call number on Search Results Page
This adds the call number to the search results page when
"Show More Details" is not selected. (This brings back the same
behavior as the pre-bootstrap OPAC.)
In the record bucket administration UI, the act of adding or removing
items from a bucket are now done in batch to avoid too many parallel
requests.
These changes include new batch create/delete API calls that can operate
on any bucket type, so other UI's can be similarly batched as needed.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Jeff Davis <jdavis@sitka.bclibraries.ca> Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Terran McCanna [Fri, 19 Feb 2021 00:37:35 +0000 (19:37 -0500)]
LP1916085 Bootstrap OPAC - Pagination on copy table
This adjusts some of the display logic in the Bootstrap OPAC
copy table pagination that had been causing the Next / Prev and
Show Fewer Copies links to be hidden when they shouldn't be.
Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org> Signed-off-by: Jason Etheridge <jason@EquinoxInitiative.org>
Mike Risher [Thu, 7 Jan 2021 19:55:45 +0000 (19:55 +0000)]
LP1871510 Update Interface Titles
Update titles on several local admin interfaces so that they match the page listing all Local Admin interfaces.
Signed-off-by: Mike Risher <mrisher@catalyte.io> Signed-off-by: Jennifer Pringle <jennifer.pringle@bc.libraries.coop> Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
When the authtoken received from the client is the unquoted literal
string "null" in a pcrud request, the drone processing the request
will crash with a segmentation fault as the session verification code
passes a NULL pointer to strcmp.
To reproduce this bug, make the following request via srfsh:
After patching Evergreen with this commit, repeat the srfsh request
again. This time, the call should return almost immediately with an
osrfMethodException: "permacrud received a bad auth token: (null)."
When you grep syslog for segfault this time, you should find no new
occurrences.
Signed-off-by: Mike Rylander <mrylander@gmail.com> Signed-off-by: Jason Stephenson <jason@sigio.com>
Bill Erickson [Tue, 9 Feb 2021 16:10:41 +0000 (11:10 -0500)]
LP1908743 Hold pickup lib does not require have-users; repairs
To match the TPAC, only disable org units where can_have_vols is false
in the hold pickup library selector (plus those explicitly disabled via
setting).
Also fixes a thinko in the settings retrieval code.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org> Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
Bill Erickson [Mon, 11 Jan 2021 19:15:33 +0000 (14:15 -0500)]
LP1908743 Staff catalog honors org-not-pickup-lib
In the Angular staff catalog, disable org units in the pickup library
selector that have the 'opac.holds.org_unit_not_pickup_lib' org unit
setting applied, plus those that have false values for can-have-users or
can-have-vols.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org> Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
Mike Rylander [Fri, 14 Aug 2020 19:35:10 +0000 (15:35 -0400)]
LP#1858114: Fix thinko in template-parameter collection
Minor thinko in the use of Array.prototype.concat() when gathering the
"where" and "having" template parameters -- concat() does not alter the
array it is called on, so we need to assign the result back to the
array.
Signed-off-by: Mike Rylander <mrylander@gmail.com> Signed-off-by: Angela Kilsdonk <akilsdonk@equinoxinitiative.org> Signed-off-by: Jason Boyer <JBoyer@EquinoxInitiative.org>
Mike Rylander [Fri, 14 Aug 2020 14:35:06 +0000 (10:35 -0400)]
LP#1858114: Record template filter values for aggregate columns
Currently the "having" clause does not record template-level filter
values in the template, but forces use of a report-level parameter.
This commit allows "having" to receive a value in the same way that
"where" does.
Signed-off-by: Mike Rylander <mrylander@gmail.com> Signed-off-by: Angela Kilsdonk <akilsdonk@equinoxinitiative.org> Signed-off-by: Jason Boyer <JBoyer@EquinoxInitiative.org>
Mike Rylander [Thu, 13 Aug 2020 17:05:19 +0000 (13:05 -0400)]
LP#1858114: Present proper input widget for aggregate parameters
There's currently logic to override the filter widget for all columns
that have a selector defined, such as the ID column of many tables. When
we transform the column with an aggregate transform, though, we don't want
to pick a particular selector-labeled value.
While I can imagine using a min or max aggregate to get a representative
value for a group, when other dependent filters would make the value
stable or where the value in particular doesn't matter but isn't needed
in a count (say), all the other aggregate transforms that are currently
supported are specifically numeric (sum, average, count, and
count_distinct). Because of that, and the most likely use case of
matching a count to "0" or "1", we should only present the "remote
object widget" for non-aggregates, and just use the baseline text string
input here.
Signed-off-by: Mike Rylander <mrylander@gmail.com> Signed-off-by: Angela Kilsdonk <akilsdonk@equinoxinitiative.org> Signed-off-by: Jason Boyer <JBoyer@EquinoxInitiative.org>
Previous to this commit, the item display order for carousels was
undefined. Now, ordering is stable and predictable.
For Newly Cataloged Item and Newest Items by Shelving Location
carousels, the order is from most recently cataloged to least
recently cataloged.
For Recently Returned Item carousels, the order is from most recently
returned to least recently returned.
For Top Circulated Items carousels, the order is from most circulated
to least circulated.
For Manual carousels (as of now, without the ability to adjust the
Position of items) it is the order they are added to the backing bucket.
Thus emptying and refilling the bucket allows reordering.
Signed-off-by: Mike Rylander <mrylander@gmail.com> Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org> Signed-off-by: Jason Boyer <JBoyer@EquinoxInitiative.org>
Mike Rylander [Thu, 30 Jul 2020 15:48:46 +0000 (11:48 -0400)]
LP#1772955: Only include xacts with balance in summary
This commit adds a new view and IDL definition that shows the total
owed/paid/balance for transactions that have a balance other than 0.
This new view is used in the patron summary bar, and access is provided
wherever the all-open-transactions version is available in case we want
to move to the new one elsewhere.
Signed-off-by: Mike Rylander <mrylander@gmail.com> Signed-off-by: Ruth Frasur <rfrasur@library.in.gov> Signed-off-by: Jason Boyer <JBoyer@EquinoxInitiative.org>
Zavier Banks [Thu, 5 Mar 2020 16:19:49 +0000 (16:19 +0000)]
LP1670457 Action Menu Grid Selection Change
I reworked the grid to disable certain actions, if
an item was needed. However, if there were actions, were
there was no item needed, they would still be available.
Bill Erickson [Mon, 14 Sep 2020 14:52:05 +0000 (10:52 -0400)]
LP1468132 MARC search honors search scope
Adds a 'Results from All Libraries' checkbox to the MARC search form in
the Angular staff catalog. When unchecked, the MARC search will limit
to results with holdings in the search scope.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Michele Morgan <mmorgan@noblenet.org> Signed-off-by: Jason Boyer <JBoyer@EquinoxInitiative.org>
Bill Erickson [Mon, 14 Sep 2020 15:33:45 +0000 (11:33 -0400)]
LP1468132 Staff MARC Search API supports copy filtering
Teaches the MARC search code to filter results on records with items
attached (though not necessarily opac-visible) for scoped staff
searches. Prior to this patch, the scope of staff searches was
effectively ignored.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Michele Morgan <mmorgan@noblenet.org> Signed-off-by: Jason Boyer <JBoyer@EquinoxInitiative.org>
Jason Boyer [Mon, 8 Feb 2021 19:20:32 +0000 (14:20 -0500)]
LP1914116: Apply html filter to mkurl() output
Because of the way that mkurl() generates its query parameters they're
generally escaped correctly, but nowhere do we run the output of mkurl()
through the html filter to correctly handle ampersands. Rather than adding
"|html" to every invocation of mkurl, it's just added to the macro directly.
Signed-off-by: Jason Boyer <JBoyer@equinoxinitiative.org> Signed-off-by: Garry Collum <gcollum@gmail.com>
Galen Charlton [Thu, 10 Dec 2020 22:23:47 +0000 (17:23 -0500)]
LP#1474029: teach Evergreen how to prevent expired staff from logging in
This patch adds the ability to prevent staff users whose
accounts have expired from logging in. This is controlled
by the new global flag "auth.block_expired_staff_login", which
is not enabled by default. If that flag is turned on, accounts
that have the `STAFF_LOGIN` permission and whose expiration date
is in the past are prevented from logging into any Evergreen
interface, including the staff client, the public catalog, and SIP2.
It should be noted that ordinary patrons are allowed to log into
the public catalog if their circulation privileges have expired. This
feature prevents expired staff users from logging into the public catalog
(and all other Evergreen interfaces and APIs) outright in order to
prevent them from getting into the staff interface anyway by
creative use of Evergreen's authentication APIs.
Evergreen admins are advised to check the expiration status of staff
accounts before turning on the global flag, as otherwise it is
possible to lock staff users out unexpectedly.
Bill Erickson [Wed, 9 Dec 2020 19:04:52 +0000 (14:04 -0500)]
LP1907115 MARC editor avoid ID collisions
Generate DOM IDs for editable content components via incrementing int
instead of a random int. This addresses cases where records with higher
numbers of MARC fields could result id DOM ID collisions, leading to
empty subfield values.
Also remove use of Renderer2, which is considered harmful and overkill
for simple document.getElementById()-equivalent calls.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Elaine Hardy <ehardy@georgialibraries.org> Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Bill Erickson [Mon, 7 Dec 2020 18:28:56 +0000 (10:28 -0800)]
LP1907115 MARC editor correctly absorbs breaker changes
MARC editor now correctly extracts MARC field data from the new
underlying MARC record when it is changed as a result of a breaker text
change and re-absorb.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Elaine Hardy <ehardy@georgialibraries.org> Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Lp 1913219: Use window.open for staff catalog edit link
To avoid the "Scripts may close only the windows that were opened by
them" console message in Chrome 88, and a similar message in Firefox
84, when clicking "Save & Exit" in the Volume/Copy editor of the
AngularJS staff client after opening it via the "edit" link in the
copy table of the TT OPAC record summary, we use an onclick handler
with window.open instead of a standard href in the edit anchor.
Signed-off-by: Jason Stephenson <jason@sigio.com> Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Since the OpenSRF Java libraries no longer build and are out of date
with the latest OpenSRF changes, this commit removes the remaining
Java code and build steps from Evergreen as it is now useless.
Signed-off-by: Jason Stephenson <jason@sigio.com> Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
Bill Erickson [Mon, 1 Jun 2020 19:20:13 +0000 (15:20 -0400)]
LP1881650 Staff catalog TCN includes delete records
For consistency with the menu action Cataloging => Retrieve Record by
TCN Value, the staff catalog Numeric Search => TCN search now includes
deleted bib records.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Mary Llewellyn <mllewell@biblio.org> Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Bill Erickson [Mon, 26 Oct 2020 15:34:28 +0000 (11:34 -0400)]
LP1827055 Remove Python libs, install bits, and docs
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Jason Stephenson <jason@sigio.com> Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
Mike Risher [Fri, 18 Oct 2019 20:19:54 +0000 (20:19 +0000)]
lp1847519 Port of Circulation Limit Set UI
Port Circulation Limit Set UI from DOJO to Angular. In addition to
editing circulation limit sets, you can add and remove linked circulation
modifiers, copy locations, and limit groups.
Signed-off-by: Mike Risher <mrisher@catalyte.io> Signed-off-by: Jennifer Pringle <jennifer.pringle@bc.libraries.coop> Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
Bill Erickson [Tue, 8 Dec 2020 20:33:13 +0000 (12:33 -0800)]
LP1907286 Staff catalog sets last retrieved record
Navigating to the detail page for a bib record in the Angular Staff
Catalog now correctly sets the value for the
'eg.cat.last_record_retrieved' local storage item, allowing Retrieve
Last Bib Record to work as expected.
Garry Collum [Mon, 14 Dec 2020 17:48:13 +0000 (12:48 -0500)]
LP1906858 Carousels Ignore Deleted Flag
Adds logic to look for the copy deleted flag in the carousel queries.
To test in concerto, it is easiest to create one item on three or four bibs
and assign the same org unit and location code to these items.
Check the items in. Check the items out, and then check them back in at their home OU.
Create 4 carousels. Newly Catalogued Items, Recently Returned Items, Top Circulated Items, and Newest Items by Shelving Location.
Make sure the carousels pull from the item library for which the items belong,
and set the owner to CONS. Select and add the correct shelving location.
Refresh the carousels. In the edit dialog box of each carousel, you can click the Link to bucket link to see the titles in the bucket.
Delete one of the items. Refresh the carousels once more and notice that the deleted title still appears.
Apply the patch.
Refresh the carousels, and the delete item should now be gone.
Signed-off-by: Garry Collum <gcollum@gmail.com> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Jane Sandberg [Tue, 29 Dec 2020 21:03:18 +0000 (13:03 -0800)]
LP1907923: Move course materials button to more suitable location
To test:
1) Apply this patch
2) In the staff client, go to Admin > Local Admin > Course Reserves List
3) Double click on a course
4) Go to the course materials tab
5) Note that the "Add Material" button is now beneath the temporary call
number, circ mod, item status, and shelving location fields.
LP#1786100: fix upgrade issue that can prevent unmapping item tags
Depending on the history of an Evergreen database, it might have an
incorrect trigger on asset.copy_tag_copy_map that prevents removing
item tags fom items. This patch ensures that the table has the
correct trigger.
To test (cannot remove item tags)
---------------------------------
[1] If you have a database from which item tags cannot be removed
on items, check the asset.copy_tag_copy_map table to see if
it has a trigger named inherit_copy_tag_copy_map_copy_fkey that
fires on insert, update, or delete. If so, this part of the
test plan applies to you.
[2] Make a copy of the database.
[3] Note that item tags cannot be unassigned from items in the
holdings editor: saving a change will appear to stick, but
opening the item back in the editor shows that the item tag
is still there.
[4] Apply the patch and run the schema update. Note that there be
just one inh_fkey trigger named inherit_asset_copy_tag_copy_map_copy_fkey
that fires only on insert or update.
[5] Repeate step 3; this time, items tags can be removed
from items.
To test (can remove item tags)
------------------------------
[1] If your test system _can_ remove item tags, as would be
the case with ones created from scratch, apply the patch
and verify that item tags can be added or removed from
items.
Jane Sandberg [Mon, 14 Dec 2020 16:07:16 +0000 (08:07 -0800)]
LP 1907921: Add a patron search button to course admin screen
To test:
1) Apply this patch
2) Go to Admin > Local Admin > Course Reserves List
3) Select a course and Edit it
4) Go to the Course users tab
5) Note that there is now a Search for Patrons button
6) Use this button to search for a patron.
7) Click the select button.
8) Note that the patron's barcode appears in the
Patron Barcode field
9) Select a Role
10) Click the Add User button
11) Note that the patron appears on the Course Users grid
Jane Sandberg [Mon, 14 Dec 2020 16:45:04 +0000 (08:45 -0800)]
LP 1816655: Add a patron search button to create booking screen
1) Apply this patch
2) Go to Booking > Create Reservation
3) Choose a resource type
4) Choose a time and double click (or press the Create Reservation
button)
5) Note that there is now a Search for Patrons button
6) Use this button to search for a patron.
7) Click the select button.
8) Note that the patron's barcode appears in the
Patron Barcode field
9) Click Confirm Reservation
10) Note that the reservation was made.