LP#1729620: (follow-up) move OAI methods to open-ils.supercat
A new service isn't really necessary for the handful
of methods that OAI support needs. Since SuperCat is
where other record harvesting and export methods live, what
was open-ils.oai is moved to SuperCat via this patch.
Signed-off-by: Galen Charlton <gmc@equinoxOLI.org> Signed-off-by: Mike Rylander <mrylander@gmail.com>
* Perl no longer allows the `keys` function to take scalar expressions
* Typo in service name in opensrf_core example config file
* Added oai schema script to the manifest file so that it is run as part of installation
* Unnecessary sigil
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu> Signed-off-by: Galen Charlton <gmc@equinoxOLI.org> Signed-off-by: Mike Rylander <mrylander@gmail.com>
- Rename DB schema file to follow convention
- Remove optional DB commands, and leave them in Release Notes (and
possibly add to Official Docs)
- Create DB upgrade script
- Print optional DB commands using \qecho
- Change variable "tcn" to "rec_id" everywhere
- Move perl API registration to be immediately after related function
- Remove unused parameter from sub oai_list_retrieve() in
Application/OAI.pm, and from API calls in WWW/OAI.pm
- Fix mislabeled parameter in API doc
- Add missing end-comment tags in opensrf.xml.example
- Add dependency to Ubuntu/Debian makefiles
- Add missing init handler in apache/eg.conf.in
- Fix reference to sysconfdir in apache/eg_startup.in
- Undo extraneous change to .gitignore
- Trim/rename release notes, since most of the install process is
handled via Evergreen install instructions.
Signed-off-by: Remington Steed <rjs7@calvin.edu> Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu> Signed-off-by: Galen Charlton <gmc@equinoxOLI.org> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Lucien van Wouw [Thu, 2 Nov 2017 14:14:51 +0000 (15:14 +0100)]
LP#1729620 New optional feature: an OAI2 provider service.
This module is an opensrf service that exposes bibliographic and authority records through the OAI2 protocol.
Developer's Certificate of Origin 1.1
By making a contribution to this project, I certify that:
(a) The contribution was created in whole or in part by me and I
have the right to submit it under the open source license
indicated in the file; or
(b) The contribution is based upon previous work that, to the best
of my knowledge, is covered under an appropriate open source
license and I have the right under that license to submit that
work with modifications, whether created in whole or in part
by me, under the same open source license (unless I am
permitted to submit under a different license), as indicated
in the file; or
(c) The contribution was provided directly to me by some other
person who certified (a), (b) or (c) and I have not modified
it.
(d) I understand and agree that this project and the contribution
are public and that a record of the contribution (including all
personal information I submit with it, including my sign-off) is
maintained indefinitely and may be redistributed consistent with
this project or the open source license(s) involved.
Signed-off-by: Lucien van Wouw, IISG, Amsterdam. Signed-off-by: Remington Steed <rjs7@calvin.edu> Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu> Signed-off-by: Galen Charlton <gmc@equinoxOLI.org> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Jason Boyer [Thu, 15 Oct 2020 17:50:18 +0000 (13:50 -0400)]
LP1900005: Don't require a specific 'opensrf' user
There's no technical reason to require a specific user beyond our
instructions stating that it's the default. One thing that we should
do is not allow our network services to be run as root.
Additionally, autogen.sh is excluded from running as root because while
that would work, it may then have to *always* be run by root or
require you to change the file owner between runs.
NOTE: We check for the user by id rather than name, as there's no rule
saying user 0 must be called "root" on Linux.
NOTE: This also cleans up and unifies the the coding style and removes
some dead code in autogen.sh.
To test:
Pre-patch:
Use oils_ctl.sh to start SIP or z3950 as opensrf, Success.
Use oils_ctl.sh to start SIP or z3950 as yourself, Failure.
Use oils_ctl.sh to start SIP or z3950 as root, Failure.
Run autogen.sh as opensrf, Success.
Run autogen.sh as yourself, Failure.
Run autogen.sh as root, Failure.
Post patch:
Use oils_ctl.sh to start SIP or z3950 as opensrf, Success.
Use oils_ctl.sh to start SIP or z3950 as your normal user, Success.
Use oils_ctl.sh to start SIP or z3950 as root, Failure.
Run autogen.sh as opensrf, Success.
Run autogen.sh as yourself, potential Success - IF you're able to write to the correct directory / files.
Run autogen.sh as root, Failure.
Signed-off-by: Jason Boyer <JBoyer@equinoxinitiative.org> Signed-off-by: Mike Rylander <mrylander@gmail.com> Signed-off-by: Jane Sandberg <sandbergja@gmail.com>
Terran McCanna [Wed, 2 Jun 2021 19:29:53 +0000 (15:29 -0400)]
LP1930614 Bootstrap OPAC Summary Block
This breaks out the summary (from the 520 field) from the rest
of the MARC data so that it displays above/outside of the More
Details button on the record page.
Bill Erickson [Thu, 20 Jan 2022 21:16:10 +0000 (16:16 -0500)]
LP1958581 Angular Grid Copy To Clipboard
To test, right click on a row in an Angular grid. A dialog should
appear which allows the user to click on a value to select the value
into the clipboard. Once selected, the dialog should close.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Garry Collum [Thu, 3 Feb 2022 22:57:45 +0000 (17:57 -0500)]
LP#1959405: hold status not looking for shelf delay status
This patch fixes the blank status display in the opac by treating that
status as a 'Waiting for Copy' status. This commit covers both the TPAC
and the Bootstrap OPAC.
To Test:
As stated by Erica in LP1959405
1. Administration->Local Administration->Library Settins Editor
set Hold Shelf Status Delay to 1 minute.
2. Place a hold for a patron
3. Capture the hold.
The opac will change from "Waiting for Copy" to a blank column.
4. Allow the delay interval to expire
The opac will change from a blank status to "Available"
5. Apply the patch
6. Repeat 2-3.
The opac will continue to display "Waiting for Copy"
7. Allow the delay interval to expire
The opac will change from "Waiting for Copy" to "Available"
Jason Stephenson [Thu, 30 Dec 2021 15:17:58 +0000 (10:17 -0500)]
LP1883171 & LP1940663: Add release notes
This work was sponsored by NOBLE.
Signed-off-by: Jason Stephenson <jason@sigio.com> Signed-off-by: Michele Morgan <mmorgan@noblenet.org> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Jason Stephenson [Tue, 23 Nov 2021 03:09:26 +0000 (22:09 -0500)]
LP1883171 & LP1940663: Add Perl live test
Add live tests to test that invetory dates are added, or not, during
checkin and inventory update as appropriate. These tests cover the
basics for the backend Perl methods. The database tests are slightly
more thorough.
This work was sponsored by NOBLE.
Signed-off-by: Jason Stephenson <jason@sigio.com> Signed-off-by: Michele Morgan <mmorgan@noblenet.org> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Modify the Item Staus view to check the new return values of the
update copy inventory function.
Fix toast handling in the list view to properly report success and failure.
Add toast handling to the single copy Item Status view to report
success and failure.
NOTE: More work could be done on the toasts to report number of
successful updates, etc. I tried using the compileContent and trusted
HTML, but this lead to new errors that I couldn't decipher.
This work was sponsored by NOBLE.
Signed-off-by: Jason Stephenson <jason@sigio.com> Signed-off-by: Michele Morgan <mmorgan@noblenet.org> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Jason Stephenson [Sun, 31 Oct 2021 20:14:10 +0000 (16:14 -0400)]
LP1883171 & LP1940663: Replace circ method to update latest inventory
Replace the open-ils.circ.circulation.update_latest_inventory method
with open-ils.circ.circulation.update_copy_inventory.
Beyond renaming the method and changing the tables it operates on, the
following changes are also made:
1. Use savepoints to allow some updates to succeed when others fail.
2. Modify the return value to include success and failure counts so that
these could potentially be used in client feedback.
This work was sponsored by NOBLE.
Signed-off-by: Jason Stephenson <jason@sigio.com> Signed-off-by: Michele Morgan <mmorgan@noblenet.org> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Jason Stephenson [Sun, 31 Oct 2021 19:18:22 +0000 (15:18 -0400)]
LP1883171 & LP1940663: Modify do_checkin for asset.copy_inventory
Modify the do_chekin method of Circulate.pm to create a new
asset::copy_inventory object when the do inventory modifier is used.
This change necessitates moving the check for a floating copy up to
where the do inventory code is run and subsequent modifications to the
transit and noop checkin code.
Set checkin_changed to true when adding an asset.copy_inventory entry
during check-in so that even if there would otherwise be a NO_CHANGE
response, the row will still get created.
This work was sponsored by NOBLE.
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 new asset.copy_inventory table with constraints:
* Foreign Key on copy -> asset.copy.id
* Unique index on inventory_date and copy
* Require that copy is at home or may float to inventory_workstation org.
Add IDL entry for asset.copy_inventory table (aci).
Change asset.latest_inventory table into a view.
Mark the asset.latest_inventory IDL entry (alci) read-only.
Provide database upgrade script to make the database changes and move
entries from the asset.latest_inventory table to the
asset.copy_inventory table.
Add pgtap schema tests to validate that the above tables, views, and
constraints exist.
Add pgtap live tests to validate that the table and view constraints
work as intended.
MERGE NOTE: IDL permissions on the new real table were updated to
match previously modified permissions on the old real table.
This work was sponsored by NOBLE.
Signed-off-by: Jason Stephenson <jason@sigio.com> Signed-off-by: Michele Morgan <mmorgan@noblenet.org> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Mike Rylander [Thu, 28 Oct 2021 17:21:30 +0000 (13:21 -0400)]
improve existing components for use in SR
Add onChange emitter to eg-org-family-select, and augment the output so we can reconstruct it
Add @sr:org_filter_field capability to eg-multi-select and eg-combobox
Sponsored-by: C/W MARS Sponsored-by: Missouri Evergreen Consortium Signed-off-by: Mike Rylander <mrylander@gmail.com> Signed-off-by: Jason Boyer <JBoyer@equinoxOLI.org> Signed-off-by: rfrasur <rfrasur@library.in.gov>
Jason Boyer [Tue, 14 Dec 2021 15:33:32 +0000 (10:33 -0500)]
Add Simple Reporter Schema Changes
New permission for Simple Reporter: RUN_SIMPLE_REPORTS
A simple_reporter field on reporter folder tables to maintain separation
between Simple Reporter and It's Complicated. Also adjust indexes to allow
duplicate names between reporters if for some reason you want to do that.
And a reporter.completed_reports view to compliment reporter.currently_running.
Sponsored-by: C/W MARS Sponsored-by: Missouri Evergreen Consortium Signed-off-by: Jason Boyer <JBoyer@equinoxOLI.org> Signed-off-by: rfrasur <rfrasur@library.in.gov> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Bill Erickson [Fri, 3 Dec 2021 18:27:01 +0000 (13:27 -0500)]
LP1951162 Migrate copy templates setting
Rename the user setting "webstaff.cat.copy.templates" to
"cat.copy.templates" and migrate any existing values. This operation is
not performed for any databases where a "cat.copy.templates" user or
workstation setting type already exists.
Teach the Angular copy editor to avoid looking up templates in local
storage, since only XUL templates are stored there, which are not
compatible.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Dan Briem [Wed, 16 Mar 2022 20:45:37 +0000 (16:45 -0400)]
LP#1746800 Exclude empty records on filtered staff searches
Excludes empty bibs on staff searches when filtering on location
or location group or when using the availability modifier.
Signed-off-by: Dan Briem <dbriem@wlsmail.org> Signed-off-by: Jennifer Weston <jennifer.weston@equinoxoli.org> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Jason Boyer [Wed, 2 Mar 2022 11:54:29 +0000 (06:54 -0500)]
Hide username and password in eg2 when screen is narrow
The Angular staff client navbar doesn't collapse when the screen is narrow
but currently the username and password can wrap, pushing the navbar over
the content. This patch doesn't add a collapsing navbar but hiding the user
information does at least stop the navbar from growing.
Signed-off-by: Jason Boyer <JBoyer@equinoxOLI.org> Signed-off-by: rfrasur <rfrasur@library.in.gov> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Jason Boyer [Tue, 1 Mar 2022 19:34:55 +0000 (14:34 -0500)]
LP1724008: Hide User@workstation when screen is narrow
As an intermediate step between the "full" navbar and the
collapsed navbar we hide the username and workstation of
the current user. This helps prevent the wrapping that can
cause the navbar to cover some of the page.
Signed-off-by: Jason Boyer <JBoyer@equinoxOLI.org> Signed-off-by: rfrasur <rfrasur@library.in.gov> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Tiffany Little [Fri, 3 Dec 2021 18:53:40 +0000 (13:53 -0500)]
LP1953193 Add autofilter to funding sources
Adds an autofilter on the active column.
Signed-off-by: Tiffany Little <tlittle@georgialibraries.org> Signed-off-by: Mike Rylander <mrylander@gmail.com> Signed-off-by: Mary Llewellyn <mllewell@biblio.org>
Galen Charlton [Wed, 22 Dec 2021 21:54:22 +0000 (16:54 -0500)]
LP#1938835: release notes for the customizable staff portal
To test
-------
[1] Apply the patch.
[2] Verify that the Angular staff portal is now the default
and that it displays the stock portal entries.
[3] In the new Staff Portal Page local administration interface,
make changes to add, subtract, or modify portal page entries.
[4] Verify that those changes appear on the staff portal page and
that they are sensitive to the workstation that the staff
user is logged in as.
Sponsored-by: Pioneer Library System Signed-off-by: Galen Charlton <gmc@equinoxOLI.org> Signed-off-by: Shula Link <slink@gchrl.org> Signed-off-by: Mike Rylander <mrylander@gmail.com> Signed-off-by: Dan Guarracino <dguarracino@pls-net.org>
Galen Charlton [Mon, 2 Aug 2021 22:12:57 +0000 (18:12 -0400)]
LP#1938835: customizable staff portal - schema, IDL, and seed data
This patch adds two new database tables and corresponding IDL classes:
* config.ui_staff_portal_page_entry_type (types of portal widgets)
* config.ui_staff_portal_page_entry (entries/widgets for the portal)
It also adds a new permission, ADMIN_STAFF_PORTAL_PAGE, for managing
the new entries, seed data for the stock portal, and a grid setting
for the portal admin interface.
Sponsored-by: Pioneer Library System Signed-off-by: Galen Charlton <gmc@equinoxOLI.org> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Jason Stephenson [Tue, 22 Feb 2022 18:17:04 +0000 (13:17 -0500)]
LP1937294: Fix another invalid XPath expression error
There was a typo further down in authority.generate_overlay_template
that was missed when the previous error was corrected. This commit
replaces an erroneous ( with the correct *.
Signed-off-by: Jason Stephenson <jason@sigio.com> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Jason Stephenson [Fri, 19 Nov 2021 22:44:37 +0000 (17:44 -0500)]
LP1937294: Fix the unaccent and squash tests
Changes in Pg 12 and Pg 14 character handling necessitate changes to
two of the tests in t/lp1501781-unaccent_and_squash.pg. These are
similar to changes made for PostgreSQL 9.6.
Signed-off-by: Jason Stephenson <jason@sigio.com> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Jason Stephenson [Fri, 19 Nov 2021 19:44:43 +0000 (14:44 -0500)]
LP1937294: Fix metarecord master record choice predictability issue
The metabib master record was being chosen using indeterminant code.
In the case of a quality tie, which record would be chosen depends on
the order that they were returned from the database. This commit adds
an additional order by on the biblio.record_entry.id to ensure that
the best matching record with the lowest id is chosen.
The live_t/lp1145213_test_func_asset.merge_record_assets.pg tests are
also adjusted to take this into account and should now pass on all Pg
versions and regardless of the order that the data is inserted.
Signed-off-by: Jason Stephenson <jason@sigio.com> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Jason Stephenson [Mon, 15 Nov 2021 19:21:17 +0000 (14:21 -0500)]
LP1937294: Fix Sample Data Load Predictability Issue
Add "ORDER BY id" to the main queries in the functions used to create
call numbers and copies when loading the sample data. This change
allows the call numbers and copies to be created in a predictable
manner.
The necessity of this change was revealed by the failure of the
20-hold-targeter.t Perl live test on PostgreSQL 11+. After this
change, that test passes on newer PostgreSQL versions and continues to
pass on PostgreSQL 10.
Signed-off-by: Jason Stephenson <jason@sigio.com> Signed-off-by: Mike Rylander <mrylander@gmail.com>
To Test the display:
1. Apply the patch.
2. Place a hold on a record with a series title.
3. Pull up the Holds Pull list and display the Series Title column.
To Test the Print Template:
1. Add the series_title variable to the hold pull list server template.
2. Display the Holds Pull list and click on the Print Full List button.
3. The print preview should display the series title information.
Signed-off-by: Garry Collum <gcollum@gmail.com> Signed-off-by: Shula Link <slink@gchrl.org> Signed-off-by: Bill Erickson <berickxx@gmail.com>
Josh Stompro [Mon, 13 Dec 2021 19:58:02 +0000 (13:58 -0600)]
LP1847827 - Evergreen Web Based Self Check - Use prefered first name in header.
Thank you to Suzanne Paterno for showing me what to edit.
After this is installed, just set and unset a preferred first name for an account
and make sure it shows up correctly in the web based self check interface.
https://example.com/eg/circ/selfcheck/main
Signed-off-by: Josh Stompro <stompro@stompro.org> Signed-off-by: Jennifer Pringle <jennifer.pringle@bclibraries.coop> Signed-off-by: Bill Erickson <berickxx@gmail.com>
Jason Stephenson [Wed, 16 Mar 2022 17:29:09 +0000 (13:29 -0400)]
LP1965161: Sort Monograph Parts in Holds Metadata
When placing a hold in the Angular Staff Catalog, parts are not sorted
in the proper order. This patch corrects the sort order.
To verify the bug:
1. Find a record with parts in your catalog.
2. Place a hold on a specific part using the Angular Staff Catalog.
3. Notice that the entries int he parts drop down are likely not
sorted in the correct order. (If they are you lucked out and
should try again with a different record.)
To verify the fix after applying the patch and re-installing
Evergreen, repeat the above steps. The parts should display in the
proper sort order by label.
Signed-off-by: Jason Stephenson <jason@sigio.com> Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jeff Davis <jdavis@sitka.bclibraries.ca> Signed-off-by: Jane Sandberg <sandbergja@gmail.com> Signed-off-by: Bill Erickson <berickxx@gmail.com>
Garry Collum [Tue, 16 Nov 2021 18:43:17 +0000 (13:43 -0500)]
LP1838580: Holds Shelf detail view record summary doesn't populate
Fixes the record summary of the detail view from the holds shelf. After
the patch is applied the bibliographic data displays in the detail view.
To test:
1. Go to Holds Shelf
2. Select a line
3. Click on the Detail View button, and notice that the bibliographic
information doesn't populate.
4. Click on the MARC link, to see to that the link does not take you to the
MARC view.
5. Apply patch.
6. Repeat 1-4. The bibliographic information now displays, and the MARC link
takes you to the correct page.
Galen Charlton [Tue, 9 Nov 2021 23:22:07 +0000 (18:22 -0500)]
LP#1950394: isolate attribute extraction of metarecord
This patch ensures that calling the Template Toolkit block
get_marc_attrs() on the metarecord's lead record's MARCXML
does not interfere with attributes already parsed from the
current bib's MARCXML on the record summary page in the Bootstrap
OPAC.
This fixes an issue where electronic resource links could fail to
be displayed under the following conditions:
- the MARC record has an 856 field with ind1 = 4 and ind2 = 0 or 1
and is NOT a located URI
- the bib is part of a metarecord set with at least one other member
- the master record in the metarecord set does not have 856 fields
To test
-------
[1] Create a setup where two bibs are in the same metarecord set, one
with 856 fields and one without. Arrange that the one without
856 fields is the lead record in the metarecord.
[2] View the one that has 856 fields in the Bootstrap OPAC's record
summary page. Note that the electronic resource links do not
appear.
[3] Apply the patch and repeat step 2. This time, the links should
appear.
Signed-off-by: Galen Charlton <gmc@equinoxOLI.org> Signed-off-by: Jason Stephenson <jason@sigio.com>
Dan Briem [Sat, 20 Nov 2021 20:14:36 +0000 (15:14 -0500)]
LP#1939426 Traditional Catalog Holds: Patron Info Not Populating
When no hold groups exist, its interface isn't present. When
placing volume holds, the advanced link isn't present.
This checks that those elements exist before accessing their
attributes and adds a missing name attribute to the Bootstrap
catalog to display the email address.
Signed-off-by: Dan Briem <dbriem@wlsmail.org> Signed-off-by: Michele Morgan <mmorgan@noblenet.org> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Jason Boyer [Fri, 11 Mar 2022 14:03:02 +0000 (09:03 -0500)]
LP1964019: Change span tag to div to work around a Chrome bug
For some reason the span tag wrapping the contents of the Holdable? column
began to cause problems with Chrome 99 on Windows. Changing the spans to divs
works everywhere without turning off tooltips.
Signed-off-by: Jason Boyer <JBoyer@equinoxOLI.org> Signed-off-by: Mike Rylander <mrylander@gmail.com> Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Jason Stephenson [Thu, 24 Sep 2020 16:31:23 +0000 (12:31 -0400)]
LP#1482757: Speed Up the Delete of Orphaned URIs in upgrade script
Modify the code that deletes orphaned asset.uri table entries in the
upgrade script to use IN logic on the subquery, because IN is much
faster than NOT IN. Also take into account the link between
serial.item and asset.uri so that we don't accidentally delete URIs
used by serial items.
Signed-off-by: Jason Stephenson <jason@sigio.com> Signed-off-by: Jessica Woolford <jwoolford@biblio.org> Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Michele Morgan [Wed, 29 Jul 2020 20:40:06 +0000 (16:40 -0400)]
LP#1482757: Delete URIs and call numbers when all 856 fields are removed
This patch assures that URIs and call numbers are deleted as appropriate
when all 856 fields are removed from the MARC.
Also provides for tracking editor and edit_date when call numbers are
deleted.
Signed-off-by: Michele Morgan <mmorgan@noblenet.org> Signed-off-by: Jason Stephenson <jason@sigio.com> Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Michele Morgan [Fri, 24 Apr 2020 17:03:23 +0000 (13:03 -0400)]
LP#1482757: Amend upgrade script to remove existing orphaned URIs
Remove orphaned URIs from the database that have accumulated from past
additions, updates and deletions of records with located URIs.
Signed-off-by: Michele Morgan <mmorgan@noblenet.org> Signed-off-by: Jason Stephenson <jason@sigio.com> Signed-off-by: Michele Morgan <mmorgan@noblenet.org>