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>
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>
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.
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>
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>
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.
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.
- 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.
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>
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.
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>
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"
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, 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>
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
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 [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>
* 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:
* 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:
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>
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>
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>
- 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
- Add chapter labels to nav file items
- (Not needed for this section.) Combine adoc files so that each
"chapter" from the old docs structure has a single file linked from
the nav
- Upgrade all heading levels in each adoc file so that the top-most
heading is a "Level 1" heading (example: "= Chapter Name =")
- Add ":toc:" below top heading of each file
For Circulation:
- Add chapter labels to nav file items
- To match existing docs "chapter" level headings, combine adoc files as
needed so that each "chapter" from the old docs structure has a single
file linked from the nav
- Added advanced_holds.adoc to the end of basic_holds.adoc
- Upgrade all heading levels in each adoc file so that the top-most
heading is a "Level 1" heading (example: "= Chapter Name =")
- Add ":toc:" below top heading of each file
- Add chapter labels to nav file items
- To match existing docs "chapter" level headings, combine adoc files as
needed so that each "chapter" from the old docs structure has a single
file linked from the nav
- Upgrade all heading levels in each adoc file so that the top-most
heading is a "Level 1" heading (example: "= Chapter Name =")
- Add ":toc:" below top heading of each file
For 'Using the Public Access Catalog'":
- Add chapter labels to nav file items
- To match existing docs "chapter" level headings, combine adoc files as
needed so that each "chapter" from the old docs structure has a single
file linked from the nav
- In this case, the only change was in advanced_features.adoc,
where two sections had the top heading level (seems like a mistake).
I bumped the second one down ("Binary MARC21 Feeds") so it is a
subsection of the file. Ironically, since this commit also bumps
up all headings by one level, it means that heading is the only one
not changed in this commit.
- Upgrade all heading levels in each adoc file so that the top-most
heading is a "Level 1" heading (example: "= Chapter Name =")
- Add ":toc:" below top heading of each file
For "Developer Resources" and "Getting Data from Evergreen":
- Add chapter labels to nav file items
- To match existing docs "chapter" level headings, combine adoc files as
needed so that each "chapter" from the old docs structure has a single
file linked from the nav
- Upgrade all heading levels in each adoc file so that the top-most
heading is a "Level 1" heading (example: "= Chapter Name =")
- Add ":toc:" below top heading of each file
Level 2 became level 1 and Table of contents added. Two files were merged
onto the "parent" as per the live docs layout. So it makes more sense when
viewed via Antora
* Fix double level 0 headings end_matter.adoc
* Add MOBIUS's name and DIG individuals to the _attributes.adoc
* Changed the home page to be the introduction page
* Fix syntax broken by "heading conversion" script
* Improve antora navs, add missing attrib files
- Remove numbering from install docs headers
- Link top-level nav items to each section's intro file
- Add a few missing _attributes.adoc files in pages/ subdirs
* Start converting internal links to antora format
Links to sections in the same file only need the section ID like this:
xref:#section_id
But links to sections in another file need the Antora page_id also:
xref:MODULE:PAGE.adoc#section_id
* Convert existing anchors to Antora syntax
* Convert more links to Antora syntax
Antora requires that links to sections in a different file use the xref
syntax, not the double-angle-bracket shortcut syntax. As best as I can
tell, this commit changes all the links that go to other files (not the
file that the link is in).
Some files still contain 'leveloffset' commands which need to be
removed, and those previously offset files should probably have their
headings adjusted accordingly.
Remington Steed [Thu, 5 Dec 2019 14:23:06 +0000 (09:23 -0500)]
LP#1848524: Docs: Add draft nav for "Software Installation" section
Note: I don't think "leveloffset" is allowed like this here. We could
pass it to "include" as an attribute, but I'd rather us standardize our
headings in our files.
Also adjust heading levels to avoid using leveloffset
with open(argv[1], 'r') as input_file:
prev_line = None
curr_line = None
for line in input_file.readlines():
prev_line = curr_line
curr_line = line
if prev_line is None:
continue
for pattern, heading in patterns:
if pattern.match(curr_line) and len(prev_line) == len(curr_line):
# remove newline so we can append suffix to heading
prev_line = prev_line.rstrip()
sys.stdout.write('%s %s %s\n' % (heading, prev_line, heading))
prev_line = None
curr_line = None
break
if prev_line is not None:
sys.stdout.write(prev_line)
# end for
if curr_line is not None:
sys.stdout.write(curr_line)
Remington Steed [Thu, 5 Dec 2019 14:06:46 +0000 (09:06 -0500)]
LP#1848524: Docs: Remove Unicode Byte-Order Mark (BOM)
A few asciidoc files start with the BOM, which occasionally causes us
trouble. For example, it interfered with our python script converting
headings from two-line style to prefix/suffix style.