Jane Sandberg [Thu, 5 Dec 2019 20:51:34 +0000 (12:51 -0800)]
LP1849212: Fix installation issue with circ mod foreign key
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Kyle Huckins [Wed, 20 Nov 2019 22:30:06 +0000 (22:30 +0000)]
lp1849212: Archive Courses
- Implement functionality to archive a course via the
admin course reserves list UI.
- Disassociate all items from a course and reinstate
their original fields if temporary fields were applied,
upon course archival.
Signed-off-by: Kyle Huckins <khuckins@catalyte.io>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Changes to be committed:
modified: Open-ILS/examples/fm_IDL.xml
modified: Open-ILS/src/eg2/src/app/staff/admin/server/course-reserves/course-list.component.html
modified: Open-ILS/src/eg2/src/app/staff/admin/server/course-reserves/course-list.component.ts
modified: Open-ILS/src/sql/Pg/040.schema.asset.sql
modified: Open-ILS/src/sql/Pg/upgrade/XXXX.schema.course-materials-module.sql
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Kyle Huckins [Thu, 7 Nov 2019 18:38:04 +0000 (18:38 +0000)]
LP1849212: tidying up course reserves UIs
- Remove RowFlair and ClassCallback from Course Reserves
Grid.
- Implement dialog to view course materials associated with
a particular course in the course list admin UI.
- Implement actions to associate and disassociate materials with
a specific course.
- Optionally apply temporary Call Number, Circ Modifier, Item
Status, and Shelving Location when associating an item with a
course.
- Reapply original values of the above-mentioned fields when
disassociating an item from a course.
- Move disassociation code into Course Service.
- Automatically disassociate items and return them
to their original state when deleting a course.
Signed-off-by: Kyle Huckins <khuckins@catalyte.io>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Zavier Banks [Thu, 24 Oct 2019 18:26:40 +0000 (18:26 +0000)]
LP#
1849212 Course List Ui
Added a grid component that displays the available data, specified
by the class, while also modifying the routing, so the admin splash
page links to the created component.
Signed-off-by: Zavier Banks <zbanks@catalyte.io>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Kyle Huckins [Fri, 18 Oct 2019 18:05:57 +0000 (18:05 +0000)]
LP1849212: Course Reserves database and IDL
- Create MANAGE_RESERVES permission.
- Create IDL Object for Courses.
- Create table within asset schema for Courses, containing an id,
a name, a course number, a section number, and an owning library.
- Add IDL Class and asset table to map actor.usr and
asset.course_module_course, along with an optional
string value for the user's role in the course. If
desired, this can later be fleshed out into a separate
course role table.
- Create IDL Class & Table for Course Materials
- Create IDL Class & Table for Non-Cataloged Course Materials
- YAOUS introduced to allow opting into the Course Materials
module functionality.
- Change instances of non-cat-course_materials to non_cat_course_materials
Signed-off-by: Kyle Huckins <khuckins@catalyte.io>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Galen Charlton [Mon, 14 Sep 2020 16:38:54 +0000 (12:38 -0400)]
LP#
1887196: add release notes
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Jeff Davis [Thu, 20 Aug 2020 17:55:37 +0000 (10:55 -0700)]
LP#
1887196: RemoteAuth get_patron_info should flesh home_ou
Signed-off-by: Jeff Davis <jdavis@sitka.bclibraries.ca>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Jeff Davis [Thu, 20 Aug 2020 17:54:34 +0000 (10:54 -0700)]
LP#
1887196: fix PatronAPI dump
Signed-off-by: Jeff Davis <jdavis@sitka.bclibraries.ca>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Jeff Davis [Sat, 21 Dec 2019 00:28:55 +0000 (16:28 -0800)]
LP#
1887196: RemoteAuth PatronAPI authentication
Signed-off-by: Jeff Davis <jeff.davis@bc.libraries.coop>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Jeff Davis [Fri, 20 Dec 2019 23:15:43 +0000 (15:15 -0800)]
LP#
1887196: RemoteAuth: add method to retrieve detailed patron info
Signed-off-by: Jeff Davis <jeff.davis@bc.libraries.coop>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Galen Charlton [Mon, 14 Sep 2020 14:56:08 +0000 (10:56 -0400)]
Revert "LP1895395: Use Angular AOT compiler for ng build"
This reverts commit
2d973ca7a71409e68d567510fe764fa35d9bd799.
Jane Sandberg [Sat, 12 Sep 2020 15:22:54 +0000 (08:22 -0700)]
LP1895395: Use Angular AOT compiler for ng build
As of angular 9, the angular documentation recommends using the AOT
compiler for ng build: https://angular.io/guide/ivy
This would provide a bit more consistency for developers (since some
errors only display in AOT, others only display in JIT, and we want to
make sure that the AOT in particular is error-free so that builds don't
break).
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Galen Charlton [Mon, 14 Sep 2020 13:46:43 +0000 (09:46 -0400)]
LP#
1749475: stamp schema update
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Michele Morgan [Sun, 13 Sep 2020 03:08:32 +0000 (23:08 -0400)]
LP#
1749475: Signed off and fixed syntax error in upgrade script.
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Mike Rylander [Tue, 25 Aug 2020 19:25:08 +0000 (15:25 -0400)]
LP#
1749475: Safer upgrade script
This modifies the database upgrade script to avoid overwriting the
existing templates if they have been differ from the default supplied
in the most recent seed data.
Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Michele Morgan [Tue, 25 Aug 2020 13:33:09 +0000 (09:33 -0400)]
LP#
1749475 Remove extra whitespace from email trigger template
Removes extra line breaks from email template output.
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Michele Morgan [Mon, 24 Aug 2020 20:34:41 +0000 (16:34 -0400)]
LP#
1749475 Alter admin page field names for clarity
To clarify for users of the admin pages, change the following labels:
Trigger Event Definition Group Configuration:
- change 'Definition ID' to 'Group ID'
Trigger Event Definition Group Member Configuration:
- change 'Definition ID' to 'ID'
- change 'Definition' to 'Event Definition'
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Galen Charlton [Fri, 3 Jan 2020 22:05:57 +0000 (17:05 -0500)]
LP#
1749475: add release notes
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Galen Charlton [Fri, 3 Jan 2020 21:52:17 +0000 (16:52 -0500)]
LP#
1749475: (follow-up) fix SendEmail's preview check
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Galen Charlton [Fri, 3 Jan 2020 20:40:46 +0000 (15:40 -0500)]
LP#
1749475: (follow-up) move admin interfaces from Local to Server
The spec called for the Event Definition Groups and Event Definition
Group Members admin interfaces to be put under Local Administration,
but the Angular local admin interfaces didn't exist when the feature
was originally submitted.
This patch also fixes "defintion" typos.
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Dan Wells [Thu, 21 Feb 2019 15:50:07 +0000 (10:50 -0500)]
LP#
1749475 Make context variable more explicit
We are dealing in this area with two potential contexts: the context
of the holdings, and the context of the event to process the request.
Let's be a little more explicit by using $event_context_org rather than
$context_org for the second, and $holdings_context_org for the first.
Signed-off-by: Dan Wells <dbw2@calvin.edu>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Dan Wells [Thu, 21 Feb 2019 15:47:25 +0000 (10:47 -0500)]
LP#
1749475 Improve API variable handling
Because we are using positional arguments, but the position is off by
one due to the previous API, these arguments were difficult to assign
cleanly. This is an attempt to make it a little more legible, though
ultimately, we should strongly consider an options hash for the new
additions.
Signed-off-by: Dan Wells <dbw2@calvin.edu>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Dan Wells [Thu, 21 Feb 2019 16:08:33 +0000 (11:08 -0500)]
LP#
1749475 Improve error handling in send_event_email_output
This code was borrowed from a few other places, so it still had the
$stat variable, but wasn't doing anything with it. We might as well
go a step further and borrow the error handling that variable is there
for.
Ultimately, email handling should probably moved out to a utility
function rather than spread about.
Signed-off-by: Dan Wells <dbw2@calvin.edu>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Dan Wells [Thu, 21 Feb 2019 17:04:38 +0000 (12:04 -0500)]
LP#
1749475 Fix template typos
The word "previewing" needed correction in both preview templates.
Signed-off-by: Dan Wells <dbw2@calvin.edu>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Dan Wells [Thu, 21 Feb 2019 16:31:20 +0000 (11:31 -0500)]
LP#
1749475 Protect against missing pubdate in biblio sort
The lack of date1 data in some records was causing this code to crash,
as an attempt was made to read textContent from nothingness. Similar
to the publisher code right above, let's protect against such cases.
Signed-off-by: Dan Wells <dbw2@calvin.edu>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Dan Wells [Thu, 21 Feb 2019 15:54:06 +0000 (10:54 -0500)]
LP#
1749475 Fix thinko in form argument for sort direction
This variable is for the sort direction, so should be 'sort_dir', not
'sort_by' (which is named, in this context 'sort').
Signed-off-by: Dan Wells <dbw2@calvin.edu>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Mike Rylander [Thu, 1 Nov 2018 21:56:09 +0000 (17:56 -0400)]
LP#
1749475: OPAC email/print record improvements
This commit provides new functionality for controlling and delivering print
and email bibliographic record export options.
Staff will be able to adjust existing and create new print and email formats
using the Action/Trigger infrastructure and the new Event Definition Group
capability.
Patrons will be able to choose from one of several formats, as configured by
staff, in which to receive one or more bibliographic records. Print and email
preview is made available for individual records via the existing links on the
record detail page, and for lists of records via new entry points on both the
Basket (anonymous list) and My Lists interfaces.
Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Chris Burton [Fri, 11 Sep 2020 23:00:32 +0000 (19:00 -0400)]
LP1778972 Fixing a couple issues in merge
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Jane Sandberg [Sat, 12 Sep 2020 16:03:54 +0000 (09:03 -0700)]
LP#
1778972: add small clarification to bootstrap opac release notes
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Galen Charlton [Fri, 11 Sep 2020 21:21:58 +0000 (17:21 -0400)]
LP#
1778972: (follow-up) restore locale picker to the navbar
Previous patches had moved it to account preferences, and a copy
of the picker will remain there now, but Evergreen should not
require that a user log in or set their browser locale in order
to be able to pick among supported locales.
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Galen Charlton [Fri, 11 Sep 2020 20:18:10 +0000 (16:18 -0400)]
LP#
1778972: make it possible to translate the Bootstrap OPAC
This patch adds src/templates-bootstrap/opac to the i18n system, checks
in an initial POT file for the Bootstrap OPAC, and provides an example
of how to enable locales in the Apache configuration.
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Galen Charlton [Thu, 10 Sep 2020 16:06:04 +0000 (12:06 -0400)]
LP#
1778972: (follow-up) excise a hard-coded link to a test server
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Galen Charlton [Thu, 10 Sep 2020 16:01:13 +0000 (12:01 -0400)]
LP#
1778972: tweak release notes
The release notes now emphasize that the Bootstrap OPAC
should be considered experimental for 3.6.x.
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
blake [Thu, 10 Sep 2020 15:03:56 +0000 (10:03 -0500)]
LP#
1778972 OPAC Redesign
Tweaked input checkboxes to be more in-line with the label text
Signed-off-by: blake <blake@mobiusconsortium.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Galen Charlton [Thu, 10 Sep 2020 15:46:00 +0000 (11:46 -0400)]
LP#
1778972: install templates-bootstrap by default
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Galen Charlton [Thu, 10 Sep 2020 15:44:58 +0000 (11:44 -0400)]
LP#
1778972: install Bootstrap skin's JS and CSS dependencies using npm
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Galen Charlton [Thu, 10 Sep 2020 15:37:40 +0000 (11:37 -0400)]
LP#
1778972: remove checked-in dependencies; we'll grab them via npm
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Galen Charlton [Thu, 10 Sep 2020 14:29:57 +0000 (10:29 -0400)]
LP#
1778972: add a couple more aria-hidden
This implements part of Owen Leonard's previous patch that
couldn't readily survive some merge conflict resolution.
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Galen Charlton [Thu, 10 Sep 2020 14:28:46 +0000 (10:28 -0400)]
LP#
1778972: convert DOS newlines in charges.tt2 to Unix
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Owen Leonard [Tue, 8 Sep 2020 16:29:58 +0000 (12:29 -0400)]
LP#
1778972: Tweaks and fixes to Bootstrap 4 template
- Add "aria-hidden" to Font Awesome icons as recommended by Font Awesome for accessibility.
- Minor changes to the color scheme.
- Some adjustments to the way alignment is defined: Bootstrap 4 classes like "text-center"
can be an impediment to customization because they use "!important." I've removed many
instances of such classes in favor of putting alignment in CSS.
- Ajustments to responsive behavior. I've made some changes to grid class definitions
to improve flexibility of layouts at various browser widths.
- Whitespace and other typo corrections. I've worked to remove trailing whitespace and
replace tabs with spaces.
Signed-of-by: Owen Leonard <zivot@zivotdesign.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Chris Burton [Fri, 17 Jul 2020 00:52:42 +0000 (20:52 -0400)]
LP1778972 A slew of updates
Including fixes to ensure pages are valid and an entire reimagining of
the My Account interface
Also brings everything up to a more visible area and adds FontAwesome5
Iconography
Bookbag Action Fix and minor other misc
Signed-off-by: Chris Burton <cburton@nflibrary.ca>
Signed-off-by: Ruth Frasur <rfrasur@library.in.gov>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Chris Burton [Fri, 17 Jul 2020 00:38:12 +0000 (20:38 -0400)]
LP#
1778972: Localizing dependencies
Signed-off-by: Chris Burton <cburton@nflibrary.ca>
Signed-off-by: Ruth Frasur <rfrasur@library.in.gov>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Jane Sandberg [Tue, 30 Jun 2020 00:41:45 +0000 (17:41 -0700)]
LP#
1778972: (follow-up) use OILSWebTemplatePath to enable/disable the bootstrap OPAC
This commit also renames the directory that contains the bootstrap-based OPAC. With
the OILSWebTemplatePath, several redundant files also can be safely removed.
Adds a release notes entry describing how to enable this OPAC in eg_vhosts.conf.
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Ruth Frasur <rfrasur@library.in.gov>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Galen Charlton [Mon, 29 Jun 2020 20:32:20 +0000 (16:32 -0400)]
LP#
1778972: (follow-up) remove a NFPL-specific template
Signed-off-by: Ruth Frasur <rfrasur@library.in.gov>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Chris Burton [Mon, 29 Jun 2020 14:51:51 +0000 (10:51 -0400)]
LP#
1778972: OPAC Redesign
To test
-------
Rename opac to opac-old and opac-new to opac, replacing the framework
while keeping the old one as backup.
Signed-off-by: Chris Burton <cburton@nflibrary.ca>
Signed-off-by: Ruth Frasur <rfrasur@library.in.gov>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Jane Sandberg [Sat, 12 Sep 2020 15:08:46 +0000 (08:08 -0700)]
Angular component properties must be public to be used in a template
The JIT compiler (used in ng build) doesn't mind when private properties
are used in templates. The AOT compiler (used in ng build --prod) does,
though. Marking these two properties as public allows ng build --prod
to complete.
Also removes some unnecessary imports.
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Jason Boyer [Fri, 11 Sep 2020 22:17:48 +0000 (18:17 -0400)]
Antora build update
Remove the lunr-specific ui components as they're now included in
the default eg-antora repository. Organizations using their own
customized version of antora-ui should include the lunr supplemental
files as explained at
https://github.com/Mogztter/antora-lunr#enable-the-search-component-in-the-ui
Signed-off-by: Jason Boyer <JBoyer@equinoxinitiative.org>
Jason Boyer [Fri, 11 Sep 2020 20:18:10 +0000 (16:18 -0400)]
LP1517298: Stamp Upgrade Script
Signed-off-by: Jason Boyer <JBoyer@equinoxinitiative.org>
Jane Sandberg [Wed, 19 Aug 2020 15:07:51 +0000 (08:07 -0700)]
LP1517298: Simplifying and cleaning up matomo implementation
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Rogan Hamby <rogan.hamby@gmail.com>
Signed-off-by: Jason Boyer <JBoyer@equinoxinitiative.org>
Rogan Hamby [Tue, 18 Feb 2020 16:19:11 +0000 (11:19 -0500)]
LP1517298: Matomo Support with library org settings
Signed-off-by: Rogan Hamby <rogan.hamby@gmail.com>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Rogan Hamby <rogan.hamby@gmail.com>
Signed-off-by: Jason Boyer <JBoyer@equinoxinitiative.org>
Dan Scott [Wed, 3 Jul 2019 18:19:42 +0000 (11:19 -0700)]
LP1517298: Basic Matomo Analytics support for tt2 files
Signed-off-by: Dan Scott <dan@coffeecode.net>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Rogan Hamby <rogan.hamby@gmail.com>
Signed-off-by: Jason Boyer <JBoyer@equinoxinitiative.org>
Galen Charlton [Fri, 11 Sep 2020 19:54:58 +0000 (15:54 -0400)]
LP#
1777677: stamp schema update
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Galen Charlton [Tue, 21 Jul 2020 21:24:46 +0000 (17:24 -0400)]
LP#
1777677: (follow-up) adjust test message buttons in registration form
This patch:
* moves the 'Send Test Email' button in the patron registration form
to cuddle next to the 'Invalidate' button
* disables the 'Send Test Email' button if the email address is
changed on the form
* disables the 'Send Test Text' button if the SMS carrier or
SMS text number is changed on the form
The point of the last two changes is to prevent staff members
from sending a test message prior to saving changes to the email
address or SMS number, as otherwise the test methods would not
have access to the new values.
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Jeff Davis [Tue, 14 Apr 2020 17:41:26 +0000 (10:41 -0700)]
LP#
1777677: restrict allowable hooks for test notifications
The open-ils.actor.event.test_notification API call should only support
the au.email.test and au.sms_text.test hooks.
Signed-off-by: Jeff Davis <jeff.davis@bc.libraries.coop>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Terran McCanna [Tue, 26 Feb 2019 15:37:12 +0000 (10:37 -0500)]
LP#
1777677 Test Notification Method
Correcting two code typos (USER_VIEW should be VIEW_USER in Actor.pm
and language string typo in test_notification.tt2).
Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Kyle Huckins [Mon, 14 Jan 2019 22:22:40 +0000 (22:22 +0000)]
lp1777677 Security tweaks
- Refactor test notification API to check if requestor
is user,and if not, then check if requestor has
permissions to view users at target user's home ou.
- Change event_def_type references to "hook"
- Separate out sendTestEmail and sendTestSMS functions
in frontend to prevent potential misuse of functionality.
Signed-off-by: Kyle Huckins <khuckins@catalyte.io>
Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Kyle Huckins [Wed, 12 Dec 2018 21:26:23 +0000 (21:26 +0000)]
lp1777677 Test Notification Release Notes
- Add release notes for Test Notification functionality.
Signed-off-by: Kyle Huckins <khuckins@catalyte.io>
Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Kyle Huckins [Wed, 12 Dec 2018 21:05:38 +0000 (21:05 +0000)]
lp1777677 Test Notification Permission & String change
- Update permission requirement to OPAC_LOGIN
- Update strings to be more end-user friendly
Signed-off-by: Kyle Huckins <khuckins@catalyte.io>
Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Kyle Huckins [Wed, 28 Nov 2018 22:10:24 +0000 (22:10 +0000)]
lp1777677 Show test notification buttons by retrieved data
- Prevents test notification buttons from displaying when email or sms
data is input but no data exists on server.
Signed-off-by: Kyle Huckins <khuckins@catalyte.io>
Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Kyle Huckins [Wed, 28 Nov 2018 21:09:04 +0000 (21:09 +0000)]
lp1777677 Test Notification OPAC success prompt
- Move OPAC success prompt higher up to ensure message is
seen.
- Ensure OPAC SMS test notification doesn't send email.
Signed-off-by: Kyle Huckins <khuckins@catalyte.io>
Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Kyle Huckins [Thu, 12 Jul 2018 15:40:33 +0000 (15:40 +0000)]
lp1777677 Test Notification Method
- Create fire_test_notification subroutine to create, fire, and
return event
- Add Test Notification UI buttons to preferences and patron edit screen.
- Add Toast to inform of success or failure of sending test notification
- Add Strings to patron interface to handle ngToast notifications
- Add Test Notification to OPAC preferences UI for email
and default sms number.
- Abort Test Notification event if no user is found.
Signed-off-by: Kyle Huckins <khuckins@catalyte.io>
Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Terran McCanna [Thu, 30 Jul 2020 19:05:42 +0000 (15:05 -0400)]
LP
1884657 Improve Access to Library Info in OPAC
Currently, the patron's account preferences page only shows the
library name. This adds the library's address, email, phone, and
web site link as well.
Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org>
Signed-off-by: Jason Boyer <JBoyer@equinoxinitiative.org>
Mike Rylander [Fri, 11 Sep 2020 16:21:24 +0000 (12:21 -0400)]
LP1880726: Support eg2 cookie
If there is a stale "ses" cookie hanging around when a staff member logs
into the Angular client, it will be sent to the batch MARC edit handler
along with the active "eg.auth.token" cookie. We should check for and
prefer the latter in this particular code.
Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Bill Erickson [Thu, 21 May 2020 16:06:38 +0000 (12:06 -0400)]
LP1880726 MARC Batch edit Angular port
Angular port of the MARC Batch Edit interface. Under the covers, each
bib record is now modified within its own transaction to avoid
long-running transactions that can potentially lock database rows needed
by other processes.
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
Galen Charlton [Fri, 11 Sep 2020 15:09:39 +0000 (11:09 -0400)]
LP#
1851413: stamp schema update
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Mike Rylander [Tue, 5 Nov 2019 17:30:10 +0000 (12:30 -0500)]
LP#
1851413: Restore assumed order of full_path
Some code, including UI rendering code in the reporting interfaces,
assumes that the order of the full_path stored procedure will be the
same as for the ancestors and descendants procedures, which is tree
order from top to bottom. However, because the full_path procedure
simply UNIONs the other two together without an explicit ORDER BY,
that may not be -- and for org hierarchies that have been modified
heavily, often is not -- the case in practice. This is due to
internals of query planning in Postgres.
The easiest place to see this issues is in the report interface.
Select a template folder that is not currently shared, choose Manage
Folder, select Share Folder, click Go, and see the dropdown of options.
Under some circumstances, the list of org units in the dropdown there
are incorrectly ordered (should be from top of the tree down), and some
that should be available are disabled.
This commit uses the org unit type depth to order the output as assumed.
Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Rogan Hamby <rogan.hamby@gmail.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Galen Charlton [Fri, 11 Sep 2020 14:58:42 +0000 (10:58 -0400)]
LP#
1879335: stamp schema update
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Bill Erickson [Thu, 10 Sep 2020 15:04:15 +0000 (11:04 -0400)]
LP1879335 Tweak bib-list sorting continued
Teach the bib-list component to honor the sort specification when
fetching its records. In cases where IDs are sorted externally (via
bibIdSource), this ensures the records retrieved from those IDs are
also similarly sorted.
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Galen Charlton [Wed, 9 Sep 2020 18:57:47 +0000 (14:57 -0400)]
LP#
1879335: (follow-up) improve extraction of thesaurus
Use the stored procedure authority.extract_thesaurus(), which knows
how to grab the thesaurus from the 040 when necessary.
This also renames the "Thesaurus" column in the display grid to
"Thesaurus (Short Code)", which corresponds to the 008 thesarus
position, and "Thesaurus Code" to "Thesaurus"
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Galen Charlton [Wed, 9 Sep 2020 18:23:55 +0000 (14:23 -0400)]
LP#
1879335: (follow-up) tweak sorting of bib list
Make sorting the list by bib ID work, but also disable sorting
by title and author since that's not supported without surgery on
the grid data source.
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Bill Erickson [Thu, 3 Sep 2020 15:32:56 +0000 (11:32 -0400)]
LP1879335 Retrieve linked bibs on demand
Avoid populating any lists of all linked bib IDs for an authority
record, since these lists can be very large. Instead, report the linked
record count to the browse UI and teach the linked bibs UI to retrieve
paged linked bib data on demand.
Modifies the "abl" IDL class to be accessible via pcrud.
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Bill Erickson [Fri, 21 Aug 2020 21:59:21 +0000 (17:59 -0400)]
LP1879335 Disable authority link buttons for auth recs
In the Angular MARC editor, avoid showing the 'Create authority link'
buttons when editing authority records.
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Bill Erickson [Fri, 21 Aug 2020 20:16:50 +0000 (16:16 -0400)]
LP1879335 Manage authorities hide owner/source cols
These fields are generally unused, but may be in the future, so hide
them by default.
Additionally, teach the grid to show the org unit shortname instead of
the org ID when the owner column is visible.
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Bill Erickson [Fri, 15 May 2020 19:11:06 +0000 (15:11 -0400)]
LP1879335 Manage Authorities Angular Port
Migrates the Manage Authorities interface from Dojo to Angular. In
addition to the existing functionality, the UI contains additional
authority record data and it's now possible to jump to a list of linked
bib records.
Includes release notes.
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Galen Charlton [Thu, 10 Sep 2020 21:52:20 +0000 (17:52 -0400)]
Antora follow-up: update references to eg-antora.git
[1] This repository currently can be cloned only over the Git
protocol, so adjust URIs accordingly.
[2] Ensure that git://git.evergreen-ils.org/eg-antora.git is the
default Antora UI repo for generate_docs.pl
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Jason Boyer [Thu, 10 Sep 2020 21:17:58 +0000 (17:17 -0400)]
Antora Docs Supplement
Update the Antora build procedure to no longer rely on ansible and
automatically build the search-enabled version of the documentation.
Signed-off-by: Jason Boyer <JBoyer@equinoxinitiative.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Jason Etheridge [Thu, 10 Sep 2020 20:33:48 +0000 (16:33 -0400)]
LP#
1857150: stamp schema update
Signed-off-by: Jason Etheridge <jason@EquinoxInitiative.org>
Galen Charlton [Wed, 9 Sep 2020 16:31:28 +0000 (12:31 -0400)]
LP#
1857150: adjust routing and single vs. double-click actions
This patch adjusts the routing to use a custom matcher so that
the base AcqProviderComponent doesn't get reinitalized unecessarily
when moving from the search form to a provider record and back. It
also ensures that when starting from the search form, single-clicking
a result won't hide the search form, while double-clicking will.
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Ruth Frasur <rfrasur@library.in.gov>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jason Etheridge <jason@EquinoxInitiative.org>
Galen Charlton [Thu, 3 Sep 2020 17:21:11 +0000 (13:21 -0400)]
LP#
1857150: add release notes
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Ruth Frasur <rfrasur@library.in.gov>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jason Etheridge <jason@EquinoxInitiative.org>
Galen Charlton [Tue, 3 Mar 2020 23:18:55 +0000 (18:18 -0500)]
LP#
1857150: Angular provider search and management interface
The interfaces for searching for and managing acquisitions provider
records have been rewritten in Angular. This rewrite includes the
following significant changes:
* The provider search interface is now available directly from the
Acquisitions menu, supplementing its longstanding availability from
the Acquisitions Administration page.
* The search interface is modeled after the patron interface, including
a search form that can be hidden or displayed, a provider summary box,
and a multi-tabbed interface for managing the provider itself.
* The grid displaying search results is filterable and sortable.
* The provider display tabs are
** Details, allowing the user to view, and if permitted, edit
the base provider record.
** Addresses
** Contacts
** Attribute Definitions
** Holdings Definitions
** EDI
** Invoices, providing an interface for viewing the invoices
associated with the provider.
** POs, providing an interface for viewing the purchase orders
associated with the provider.
* The new interface makes it possible to edit contact addresses.
* The base provider record now has an optional primary contact field.
Selecting a contact as the primary one is managed on the Contacts
tab. The primary contact, if set, is displayed on the provider
summary box.
Interfaces that used to link to the Dojo provider interface now link
to the Angular one instead.
This patch also includes a mechanism for stopping navigation away
from a dirty provider or holdings tag form unless the user expressly
confirms that they want to abandon the unsaved changes.
This patch includes contributions by Mike Rylander and Jason Etheridge.
Sponsored-by: Evergreen Community Development Initiative
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Ruth Frasur <rfrasur@library.in.gov>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jason Etheridge <jason@EquinoxInitiative.org>
Galen Charlton [Wed, 2 Sep 2020 16:36:47 +0000 (12:36 -0400)]
LP#
1857150: add workstation settings for new grids
Sponsored-by: Evergreen Community Development Initiative
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Ruth Frasur <rfrasur@library.in.gov>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jason Etheridge <jason@EquinoxInitiative.org>
Galen Charlton [Wed, 2 Sep 2020 16:32:25 +0000 (12:32 -0400)]
LP#
1857150: various schema and IDL changes
* Add a primary_contact column to acq.provider. The primary contact,
when set, signifies the primary point of contact in case a provider
has multiple contacts. This is displayed on the summary pane in
the Angular interface.
* Mark various non-NULL fields as required so that the record editor,
can require them in turn:
- acqpro.name
- acqpro.owner
- acqpro.currency_type
- acqpro.code
- acqpa.city
- acqpa.country
- acqpa.post_code
- acqpa.state
- acqpa.street1
- acqpc.provider
- acqpc.name
- acqpca.city
- acqpca.country
- acqpca.post_code
- acqpca.state
- acqpca.street
- acqlipad.code
- acqlipad.description
- acqlipad.xpath
- acqlipad.provider
- acqphsm.provider
- acqphsm.name
- acqphsm.subfield
- acqedi.label
- acqedi.host
- acqedi.owner
- acqedi.provider
- acqedi.use_attrs
* Make acqpro.name not be translatable. This appears to have just
been a case of copy-and-pastitis, as providers don't seem to
vary their names by locale.
* Add various virtual fields to support more fleshing:
- acqpro.contacts
- acqpro.holdings_subfields
- acqpro.attributes
- acqpro.edi_accounts
- acqpc.addresses
This patch includes contributions by Mike Rylander.
Sponsored-by: Evergreen Community Development Initiative
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Ruth Frasur <rfrasur@library.in.gov>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jason Etheridge <jason@EquinoxInitiative.org>
Galen Charlton [Thu, 9 Jul 2020 21:15:58 +0000 (17:15 -0400)]
LP#
1857150: org-family-select: have ngModel changes update the control
Sponsored-by: Evergreen Community Development Initiative
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Ruth Frasur <rfrasur@library.in.gov>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jason Etheridge <jason@EquinoxInitiative.org>
Galen Charlton [Thu, 9 Apr 2020 15:24:04 +0000 (11:24 -0400)]
LP#
1857150: eg-fm-record-editor: support field-level help popovers
Add a new helpText field option to supply text for help popovers
that display next to the field label.
Example usage:
<eg-string #hostHelpStr text="EDI FTP or SCP server, including protocol. For example, ftp://ftp.example.org." i18n-text></eg-string>
<eg-fm-record-editor #editDialog
idlClass="acqedi"
[fieldOptions]="{
host: {helpText: hostHelpStr},
}"
</eg-fm-record-editor>
Sponsored-by: Evergreen Community Development Initiative
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Ruth Frasur <rfrasur@library.in.gov>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jason Etheridge <jason@EquinoxInitiative.org>
Galen Charlton [Thu, 3 Sep 2020 17:32:46 +0000 (13:32 -0400)]
LP#
1857150: eg-fm-record-editor: handle unavailable linked values
In some cases, a record editor might be handed a base object
that has a linked column whose values cannot be retrieved
because the user has permission to fetch the base object
but not the linked objects. This patch makes the record editor
more resilient in the face of that situation.
Sponsored-by: Evergreen Community Development Initiative
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Ruth Frasur <rfrasur@library.in.gov>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jason Etheridge <jason@EquinoxInitiative.org>
Galen Charlton [Tue, 1 Sep 2020 02:39:49 +0000 (22:39 -0400)]
LP#
1857150: eg-fm-record-editor: add isDirty() method
This adds an isDirty() method to the form that components embedding
an eg-fm-record-editor can use to check whether the form is
currently dirty.
NOTE: not all of the custom components that can show up on
an fm-edit form currently implement component-level
dirty checks.
Sponsored-by: Evergreen Community Development Initiative
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Ruth Frasur <rfrasur@library.in.gov>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jason Etheridge <jason@EquinoxInitiative.org>
Galen Charlton [Fri, 17 Apr 2020 21:11:29 +0000 (17:11 -0400)]
LP#
1857150: eg-fm-record-editor: add remainOpenOnError option
Give eg-fm-record-editor an option controlled by the boolean
remainOpenOnError attribute to, when used as a dialog, keep
the dialog open if an error is encountered upon saving the
record.
Sponsored-by: Evergreen Community Development Initiative
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Ruth Frasur <rfrasur@library.in.gov>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jason Etheridge <jason@EquinoxInitiative.org>
Jason Boyer [Wed, 9 Sep 2020 14:29:28 +0000 (10:29 -0400)]
LP1835736: Rearrange seed data
If a search_format and icon_format are defined before the DO blocks
around line 9200 at least the icon_format definition must exist
before the DO blocks are executed.
Signed-off-by: Jason Boyer <JBoyer@equinoxinitiative.org>
Galen Charlton [Tue, 8 Sep 2020 15:33:51 +0000 (11:33 -0400)]
LP#
1835736: stamp schema update
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Rogan Hamby [Thu, 12 Dec 2019 21:01:20 +0000 (16:01 -0500)]
LP#
1835736: add stock icon and search formats for preloaded audio
Signed-off-by: Rogan Hamby <rogan.hamby@gmail.com>
Signed-off-by: Jennifer Weston <jennifer.weston@equinoxinitiative.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Galen Charlton [Tue, 8 Sep 2020 14:52:21 +0000 (10:52 -0400)]
LP#
1860703: stamp schema update
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Mike Rylander [Tue, 28 Jul 2020 19:55:47 +0000 (15:55 -0400)]
LP#
1860703: Adding release notes for A/T HTTP reactor
Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Mike Rylander [Thu, 14 May 2020 18:13:38 +0000 (14:13 -0400)]
LP#
1860703: Additional A/T hooks for use with various patron changes
This commit normalizes the au.update/au.updated and au.create/au.created
hooks, making them match between code and seed data, and adds two
entirely new hooks, au.renewed and au.barcode_changed.
Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Troy Leonard <leonardt@aadl.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Mike Rylander [Mon, 28 Oct 2019 15:03:58 +0000 (11:03 -0400)]
LP#
1860703: Create A/T hook and reactor for push integration
There is currently no stock mechanism for pushing information out of Evergreen
to trigger activities in external systems. Third party discovery systems,
among other external systems, would benefit from the ability to be alerted of
changes to data within an Evergreen instance.
This commit adds such a capability by supplying a new A/T reactor module that
can make HTTP requests that supply data to a third party endpoint.
To support the discovery system use case, this commit also adds a new A/T hook,
bre.edit, fired whenever a bibliographic record is modified due to staff
interaction.
Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Troy Leonard <leonardt@aadl.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Galen Charlton [Sat, 5 Sep 2020 00:35:51 +0000 (20:35 -0400)]
LP#
1848524: add release notes
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Galen Charlton [Sat, 5 Sep 2020 00:29:10 +0000 (20:29 -0400)]
LP#
1848524: update references to docs-antora
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Galen Charlton [Fri, 4 Sep 2020 22:08:55 +0000 (18:08 -0400)]
LP#
1848524: tweak the Antora site.yml
- point to docs/
- default to the current checkout when building docs
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Galen Charlton [Fri, 4 Sep 2020 22:07:21 +0000 (18:07 -0400)]
LP#
1848524: tweaks to generate_docs.pl
- make executable
- adjust so that it doesn't need root privileges
to install in the system Node module directory
- let Gulp be installed in the temporary scratch
directory
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Galen Charlton [Fri, 4 Sep 2020 21:23:21 +0000 (17:23 -0400)]
LP#
1848524: update the README symlink
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Galen Charlton [Fri, 4 Sep 2020 21:22:17 +0000 (17:22 -0400)]
LP#
1848524: ... and swap in the Antora docs
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>