evergreen/tadl.git
5 years agoLP#1796945 Match new path_label/alias standard
Dan Wells [Thu, 15 Aug 2019 14:20:17 +0000 (10:20 -0400)]
LP#1796945 Match new path_label/alias standard

The old reporter used '::' as a path separator in some labels, while the
new version uses '->' in its place.  This would normally be just a
curiosity, except that the hashes used as join aliases are generated
from these path labels.  The end result is that while a report can be
cloned, if you add a field anywhere other than the top level, it
references a join alias which does not exist, and the report breaks.

Now, the method by which report templates are upgraded from v4 to v5
does not happen all in one pass, but rather a first pass is made
populate the interface, then the rest is done when the user saves the
clone.  Because of this, it actually seems adequate to only fix the
label, then allow the other steps to fill in the other bits upon saving
of the report.

Thank you to J. Boyer for helping track down the culprit.

Signed-off-by: Dan Wells <dbw2@calvin.edu>
Signed-off-by: Jason Boyer <jboyer@library.in.gov>
5 years agoLP#1796945 Reporter cloning and creation fixes
Dan Wells [Fri, 3 May 2019 17:17:50 +0000 (13:17 -0400)]
LP#1796945 Reporter cloning and creation fixes

This commit addresses a variety of issues with the webstaff reporter
interface, particularly cases of cloning reports created in the XUL
client.

1. The conversion process did not account for manually selected JOIN
operations (aka nullability).  These JOINs are now honored by the
conversion code.

2. The conversion process did not account for aggregate filters.  These
filters are now converted where present.

3. The previous reporter interface attempted to intelligently apply LEFT
and INNER JOINs by default.  The new interface applied INNER joins
exclusively by default, leading in many cases to different results.
This commit reinstates the previous logic.  One side effect of this
change is that the IDL tree itself is no longer opinionated about JOIN
type, and the default JOIN is undefined.

4. The nullability selector has been expanded to allow for manual
selection of INNER joins, as they will longer be the default in some
cases.

5. Cloned-converted reports did not retain column order.  The order is
now preserved.

6. Some templates created in the older interface could, in some cases,
have aggregate values set as the string "undefined" rather than
actually being undefined.  This led to converted templates failing with
"column [xxx] must appear in the GROUP BY clause...", as they were
incorrectly converted as aggregates.  The conversion code now accounts
for this latent bug.

Signed-off-by: Dan Wells <dbw2@calvin.edu>
Signed-off-by: Jason Boyer <jboyer@library.in.gov>
5 years agoTranslation updates - po files
Dan Wells [Thu, 22 Aug 2019 16:33:27 +0000 (12:33 -0400)]
Translation updates - po files

Signed-off-by: Dan Wells <dbw2@calvin.edu>
5 years agoTranslation updates - newpot
Dan Wells [Thu, 22 Aug 2019 16:23:06 +0000 (12:23 -0400)]
Translation updates - newpot

Signed-off-by: Dan Wells <dbw2@calvin.edu>
5 years agoLP1840852: Separates two MARCXML datafields in sample data
Jane Sandberg [Tue, 20 Aug 2019 22:42:39 +0000 (15:42 -0700)]
LP1840852: Separates two MARCXML datafields in sample data

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Ben Shum <ben@evergreener.net>
5 years agoUpdate upgrade instructions
Dan Wells [Wed, 18 Apr 2018 22:12:19 +0000 (18:12 -0400)]
Update upgrade instructions

Genericize version numbers, plus a few minor tweaks.

Eventually we probably need to start building the docs from tags, and
let the main branch use real placeholders.

Signed-off-by: Dan Wells <dbw2@calvin.edu>
5 years agoDocs: Adding 3.3.3 release notes
Andrea Buntz Neiman [Wed, 21 Aug 2019 21:03:25 +0000 (14:03 -0700)]
Docs: Adding 3.3.3 release notes

Signed-off-by: Andrea Buntz Neiman <abneiman@equinoxinitiative.org>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
5 years agoDocs: Adding missing entry to 3.2.8 release notes
Andrea Buntz Neiman [Wed, 21 Aug 2019 21:00:47 +0000 (14:00 -0700)]
Docs: Adding missing entry to 3.2.8 release notes

Signed-off-by: Andrea Buntz Neiman <abneiman@equinoxinitiative.org>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
5 years agoDocs: Adding 3.1.14 release notes
Jane Sandberg [Wed, 21 Aug 2019 20:30:01 +0000 (13:30 -0700)]
Docs: Adding 3.1.14 release notes

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Andrea Buntz Neiman <abneiman@equinoxinitiative.org>
5 years agoDocs: Adding 3.1.14 release notes
Andrea Buntz Neiman [Wed, 21 Aug 2019 20:25:49 +0000 (13:25 -0700)]
Docs: Adding 3.1.14 release notes

Signed-off-by: Andrea Buntz Neiman <abneiman@equinoxinitiative.org>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
5 years agolp1739292 merge UI displays record summary
Mike Risher [Wed, 10 Jul 2019 19:52:58 +0000 (19:52 +0000)]
lp1739292 merge UI displays record summary

Add the record summary to the record merge UI.  Note that when one clicks
on "use as lead record" or "remove from consieration" the order of the
records changes.  The record summary also will change order to match.

Signed-off-by: Mike Risher <mrisher@catalyte.io>
 Changes to be committed:
modified:   Open-ILS/src/templates/staff/cat/bucket/record/t_merge_records.tt2
new file:   Open-ILS/src/templates/staff/cat/share/t_record_summary_slim.tt2
modified:   Open-ILS/web/js/ui/default/staff/cat/services/record.js

Signed-off-by: Bill Erickson <berickxx@gmail.com>
5 years agoLP1839548 Angular catalog holds patron barcode link
Bill Erickson [Fri, 9 Aug 2019 14:21:53 +0000 (10:21 -0400)]
LP1839548 Angular catalog holds patron barcode link

Holds grid on record detail page now present the patron barcode as a
link to the patron UI.

Related, this fixes the URL in the link for the copy barcode.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
5 years agoLP1751800 - fix fields fields reversing
James Fournie [Thu, 2 May 2019 16:53:35 +0000 (09:53 -0700)]
LP1751800 - fix fields fields reversing

The pop() here will remove the last item in the array, only to add it
later with a push() a few lines later.  Instead use a shift() to
preserve the order.

Signed-off-by: James Fournie <james.fournie@gmail.com>
Signed-off-by: Remington Steed <rjs7@calvin.edu>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
5 years agoLP#1785061: move the filter value munging to the template service
Galen Charlton [Wed, 22 May 2019 15:12:37 +0000 (11:12 -0400)]
LP#1785061: move the filter value munging to the template service

This allows the reporter app to stay a bit more focused on
display concerns.

Here's a test plan for the patch series
---------------------------------------
[1] Create a reporter template that has a filter field
    and a filter operator of "In list", "Not in list", "Between",
    or "Not between" and hard-code a value for that filter
    in the template, separating values with a comma.
[2] Try to create a report from that template; note that it
    fails with an error.
[3] Apply the patch and repeat steps 1 and 2. This time, the
    report should succeed.

Note that this fix applies only to hardcoding filter values in the
template; it doesn't change any behavior when attempting to set
a filter value for any of the four operators above at the point of
creating a report.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Conflicts:
Open-ILS/web/js/ui/default/staff/reporter/template/app.js

Signed-off-by: Dan Wells <dbw2@calvin.edu>
5 years agoLP#1785061: Split filter value on comma for "in list" and the like
Remington Steed [Thu, 2 May 2019 13:15:30 +0000 (09:15 -0400)]
LP#1785061: Split filter value on comma for "in list" and the like

This commit borrows directly from the XUL reporter code (see
function __default_value_event_handler () in
Open-ILS/web/reports/xul/template-config.js). Basically, when the filter
value is saved, certain cases need special treatment, such as splitting
an "in list" value on commas. This commit includes a helper function
which does the special treatment and saves the filter value. This helper
is called both when the value itself is changed, and when the operator
is changed.

Signed-off-by: Remington Steed <rjs7@calvin.edu>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Conflicts:
Open-ILS/web/js/ui/default/staff/reporter/template/app.js

Signed-off-by: Dan Wells <dbw2@calvin.edu>
5 years agoLP1735768: adding labels to inputs in the public catalog
Jane Sandberg [Sat, 10 Nov 2018 20:32:04 +0000 (12:32 -0800)]
LP1735768: adding labels to inputs in the public catalog

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoLP#1837059: stamp DB update
Galen Charlton [Tue, 6 Aug 2019 00:58:34 +0000 (20:58 -0400)]
LP#1837059: stamp DB update

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoLP#1837059: (follow-up) add release notes
Galen Charlton [Thu, 1 Aug 2019 15:24:34 +0000 (11:24 -0400)]
LP#1837059: (follow-up) add release notes

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoLP#1837059: (follow-up) mark help text for i18n
Galen Charlton [Thu, 1 Aug 2019 15:17:19 +0000 (11:17 -0400)]
LP#1837059: (follow-up) mark help text for i18n

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoLP1837059 Address alert config help text
Bill Erickson [Thu, 1 Aug 2019 14:36:06 +0000 (10:36 -0400)]
LP1837059 Address alert config help text

Support passing a helpTemplate value to the staff admin page builder.
Create an Address Alert component so it may define and pass its own help
text to the admin page builder.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoLP1837059 Local admin workstation settings
Bill Erickson [Thu, 18 Jul 2019 14:45:45 +0000 (10:45 -0400)]
LP1837059 Local admin workstation settings

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoLP1837059 Angular local admin page
Bill Erickson [Wed, 17 Jul 2019 22:03:31 +0000 (18:03 -0400)]
LP1837059 Angular local admin page

Links to the following pages now refer to their auto-generated Angular
equivalent:

actor/address_alert
config/barcode_completion
actor/copy_alert_suppress
asset/copy_location
asset/copy_tag
permission/grp_penalty_threshold
config/hold_matrix_matchpoint
config/non_cataloged_type
rating/badge

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoLP1837059 Basic admin page can propagate disableOrgFilter
Bill Erickson [Wed, 17 Jul 2019 22:02:39 +0000 (18:02 -0400)]
LP1837059 Basic admin page can propagate disableOrgFilter

Allow admin pages to hide the automagic org unit filter by passing the
value in via the route.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoLP#1722827: stamp DB update
Galen Charlton [Tue, 6 Aug 2019 00:45:28 +0000 (20:45 -0400)]
LP#1722827: stamp DB update

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoLP#1722827: trim spaces from 856$9 when parsing locating URIs
Rogan Hamby [Fri, 14 Sep 2018 14:48:02 +0000 (10:48 -0400)]
LP#1722827: trim spaces from 856$9 when parsing locating URIs

This patch ensures that any leading and trailing spaces
and non-breaking-spaces in the 856$9 are ignored when
extracting the org unit shortname. As a consequence,
extraneous leading/trailing whitespace in the $9 will not
prevent the located URI from being displayed in the appropriate
places.

Signed-off-by: Rogan Hamby <rogan.hamby@gmail.com>
Signed-off-by: Meg Stroup <mstroup@statelibrary.sc.gov>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoLP#1511765 Fix error when checking in with zero-balance lost OU setting enabled
Michele Morgan [Wed, 23 May 2018 17:54:28 +0000 (13:54 -0400)]
LP#1511765 Fix error when checking in with zero-balance lost OU setting enabled

Fixes an error generated when checking in Lost/Long Overdue/Lost and Paid
items with no associated circ when the org unit setting
circ.checkin.lost_zero_balance.do_not_change is set to TRUE

Items can attain this state from migration, or when the associated circ
has been aged.

Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Signed-off-by: Kyle Huckins <khuckins@catalyte.io>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoLP1830912 Locally servered material icons
Bill Erickson [Wed, 29 May 2019 14:37:27 +0000 (10:37 -0400)]
LP1830912 Locally servered material icons

Adds the material-icons NPM package and teaches the Angular code to
import the icons at build time instead of fetching the icons from the
Google servers.

Two existing icons were swapped with alternate icons to avoid odd
spacing issues with the locally served versions.

Note 'npm install' is required to pick up the new icons package.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoLP1802593: Correct formatting of language code in Angularjs, KPAC
Jane Sandberg [Mon, 29 Jul 2019 18:56:31 +0000 (11:56 -0700)]
LP1802593: Correct formatting of language code in Angularjs, KPAC

EgWeb offers two different formats of the current locale: ctx.locale and
ctx.eg_locale.  This commit configures the lang attribute in AngularJS
staff client, OPAC, and KPAC to use eg_locale, since it has the
appropriate format (e.g. en-US, fr-CA).

Also adds some tests for EgWeb's handling of language codes.

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoLP#1787676: sort Z39.50 sources in JS, retaining Local Catalog at top of list
Jeff Davis [Fri, 17 Aug 2018 17:32:31 +0000 (10:32 -0700)]
LP#1787676: sort Z39.50 sources in JS, retaining Local Catalog at top of list

This reverts the original fix for LP#1119370.

Signed-off-by: Jeff Davis <jdavis@sitka.bclibraries.ca>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoLP1742523: Allow two strings in the mark damaged popup to be translated
Jane Sandberg [Sat, 19 May 2018 02:41:12 +0000 (19:41 -0700)]
LP1742523: Allow two strings in the mark damaged popup to be translated

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Jason Stephenson <jason@sigio.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoLP#1795937: (follow-up) propagte new favicon to Angular app
Galen Charlton [Sat, 3 Aug 2019 16:35:26 +0000 (12:35 -0400)]
LP#1795937: (follow-up) propagte new favicon to Angular app

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoLP#1795937: Update favicon.ico to reflect new round logo voted in by EOB.
Geoff Sams [Thu, 25 Apr 2019 22:18:53 +0000 (17:18 -0500)]
LP#1795937: Update favicon.ico to reflect new round logo voted in by EOB.

Signed-off-by: Geoff Sams <gsams@roanoketexas.com>
Signed-off-by: Rogan Hamby <rogan.hamby@gmail.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoLP1756564: Add sample data for the booking module
Jane Sandberg [Wed, 28 Mar 2018 20:58:20 +0000 (13:58 -0700)]
LP1756564: Add sample data for the booking module

This commit adds booking resources and resource types to Evergreen's
sample data.  Specifically, it includes four resource types:
* meeting rooms (bookable by staff at BR1 and BR4)
* phone chargers (bookable by staff at BR3, BR4, and BM1)
* laptop computers (attached to a MARC record, bookable by staff at BR3)
* e-readers (attached to a MARC record, bookable by staff at BR3)

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoLP1803584 Avoid JS errors when clearing copy templates
Bill Erickson [Fri, 8 Mar 2019 17:09:07 +0000 (12:09 -0500)]
LP1803584 Avoid JS errors when clearing copy templates

Minor fix to sanity check multi-copy data in the copy template editor
after clearing the template contents.  This cleans up some ugly console
errors.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoLP1803584: Fix Clear button in template editor
Jason Boyer [Thu, 15 Nov 2018 18:45:44 +0000 (13:45 -0500)]
LP1803584: Fix Clear button in template editor

There are multiple controllers in staff/cat/volcopy/ and
2 of them have a clearWorking() function. The template
editor controller is referencing $scope.MultiMap[] which
will never exist in the template editor, while the actual
item editor controller clearWorking() does not reference
$scope.MultiMap[], meaning that clearing multiple items
at once would not work as expected. This branch clears
up this confusion.

Signed-off-by: Jason Boyer <jboyer@library.in.gov>
Signed-off-by: Beth Willis <willis@noblenet.org>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoLP1800484: Substitute 0 for missing Totals values
Jason Boyer [Mon, 29 Oct 2018 14:53:41 +0000 (10:53 -0400)]
LP1800484: Substitute 0 for missing Totals values

If nothing is returned for the Totals on the patron Bills tab,
use a 0 rather than leaving the value missing.

Signed-off-by: Jason Boyer <jboyer@library.in.gov>
Signed-off-by: Rogan Hamby <rogan.hamby@gmail.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoLP1838136: .editorconfig matches current practices
Jane Sandberg [Sat, 27 Jul 2019 13:27:50 +0000 (06:27 -0700)]
LP1838136: .editorconfig matches current practices

This commit allows .editorconfig-enabled IDEs to easily adhere to
these best practices:
https://wiki.evergreen-ils.org/doku.php?id=dev:angular_dev_best_practices

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoLP#1829567: (follow-up) fix styling regression on a navbar item
Galen Charlton [Fri, 2 Aug 2019 14:29:55 +0000 (10:29 -0400)]
LP#1829567: (follow-up) fix styling regression on a navbar item

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
5 years agoLP1829567 Angular navbar access key additions
Bill Erickson [Thu, 1 Aug 2019 16:08:12 +0000 (12:08 -0400)]
LP1829567 Angular navbar access key additions

Adds keyboard shorts to the Angular navigation bar for the following
actions using the same key assignemnts as AngJS.

Patron Search
Item Status
OPAC
Check Out
Check In
Capture Holds
Renew items
Register Patron
Retrieve Last Patron
Retrieve Recent Patrons
Record In-House Use
Reprint Last Receipt
Retrieve Bib Record by TCN
Retrieve Last Bib Record

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoLP1829567 Angular access key improvements
Bill Erickson [Thu, 1 Aug 2019 16:07:56 +0000 (12:07 -0400)]
LP1829567 Angular access key improvements

1. Adds support for shift+ shortcuts.
2. Remove duplicate key assignments made within the same context.  This
   is especially useful in the navigation bar since some commands repeat
   from different menus.
3. Indicate in the key assignemnts help page when an assignemnt has be
   superseded by another assignment.
4. Open the help page in large-dialog mode for more room.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoLP#1329920: (follow-up) set searchFormat as well
Galen Charlton [Fri, 2 Aug 2019 16:44:16 +0000 (12:44 -0400)]
LP#1329920: (follow-up) set searchFormat as well

AutoFieldWidget's searchFormat (among other things) controls
the formatting of the selected value for a drop-down, so
this patch sets it for funds as well. This patch also tidys
up whitespace.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoLP#1329920 Add fund year to distribution formula fund dropdown menu
Tiffany Little [Fri, 18 Jan 2019 20:54:27 +0000 (15:54 -0500)]
LP#1329920 Add fund year to distribution formula fund dropdown menu

In distribution formulas, adds the fund year in parentheses to the
funds listed in the Fund drop-down menu.

Signed-off-by: Tiffany Little <tlittle@georgialibraries.org>
Signed-off-by: Kyle Huckins <khuckins@catalyte.io>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoLP#1650409: improve authority_control_fields.pl's --all and --days_back processing
Rogan Hamby [Fri, 9 Mar 2018 13:38:06 +0000 (08:38 -0500)]
LP#1650409: improve authority_control_fields.pl's --all and --days_back processing

When --all is used, the list of bibliographic records to process is now
retrieved via a direct database query instead of using open-ils.storage,
avoiding a potential timeout.

The query used to fetch records when --days_back is used now fetches
all records that were edited up to the specified number of days
ago. Prior to this patch, --days_back ended up fetching records
created on the current day and records edited on the --days_back
day, skipping any that were updated in between.

Signed-off-by: Rogan Hamby <rogan.hamby@gmail.com>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agodocs: LP1778712 (follow-up) new screenshots to reflect the copy => item name change
Jane Sandberg [Fri, 2 Aug 2019 15:40:40 +0000 (08:40 -0700)]
docs: LP1778712 (follow-up) new screenshots to reflect the copy => item name change

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
5 years agodocs: LP1778712 replace 6 screenshots circ items documentation
Jeanette Lundgren [Wed, 12 Sep 2018 19:23:47 +0000 (15:23 -0400)]
docs: LP1778712 replace 6 screenshots circ items documentation

Signed-off-by: Jeanette Lundgren <jlundgren@cwmars.org>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
5 years agoLP#1768869 - Update make_release to add auditor table update
Josh Stompro [Thu, 28 Feb 2019 15:13:58 +0000 (09:13 -0600)]
LP#1768869 - Update make_release to add auditor table update

The auditor.update_auditors() function needs to be called
to update tables that are being auditied with schema
changes made to those tables.  This adds a call to that
funcation at the end of the upgrade scripts.

The function seems to not take that long to run, so it may
be ok to run it more than necessary.  Or it can be removed
by release manager if they know that no schema changes were made.

Signed-off-by: Josh Stompro <stompro@stompro.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoLP#1831788: (follow-up) quell an ng-lint warning about whitespace
Galen Charlton [Thu, 1 Aug 2019 21:01:21 +0000 (17:01 -0400)]
LP#1831788: (follow-up) quell an ng-lint warning about whitespace

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoLP1837260 Bill Type IDL required fields
Bill Erickson [Mon, 22 Jul 2019 14:22:06 +0000 (10:22 -0400)]
LP1837260 Bill Type IDL required fields

Add oils_obj:required attributes to config.billing_type IDL fields.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Kyle Huckins <khuckins@catalyte.io>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoLP1837260 FM Record editor 'inline' display mode
Bill Erickson [Fri, 19 Jul 2019 21:58:19 +0000 (17:58 -0400)]
LP1837260 FM Record editor 'inline' display mode

Adds support for a new @Input() attribute called "displayMode", which
defaults to "dialog".  When the value is set to "inline", the editor
pane will be rendered inline within the page where the
<eg-fm-record-editor/> element resides.

Adds support for success/fail toasts.

Implements the handlers for the previously defined onSave$, onError$,
and onCancel$ EventEmitters, primarly so callers can interact with the
editor in "inline" mode where no "close()" operation occurs.

Sandbox example included.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Kyle Huckins <khuckins@catalyte.io>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoLP1813078 Menus are sometimes grayed out based on browser size
Garry Collum [Mon, 20 May 2019 18:41:32 +0000 (14:41 -0400)]
LP1813078 Menus are sometimes grayed out based on browser size

This patch changes a media definition in css from 800px to 768px, the md column
size for bootstrap.css.  Items in the menus font color changed when the browser
was sized between 768px and 800px.

To test.
1. Expand the Circulation menu, and change the browser to a width between
768px and 800px.  Notice that the menu items change to a gray color.
2. Apply the patch, and then change the width of the browser.  Notice that
the menu items do not change color before the menu is collapsed.

Signed-off-by: Garry Collum <gcollum@gmail.com>
Signed-off-by: Kyle Huckins <khuckins@catalyte.io>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
5 years agodocs: adding index terms 'copy tags' and 'copy status'
Andrea Buntz Neiman [Thu, 1 Aug 2019 18:38:39 +0000 (14:38 -0400)]
docs: adding index terms 'copy tags' and 'copy status'

Signed-off-by: Andrea Buntz Neiman <abneiman@equinoxinitiative.org>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
5 years agodocs: updating copy tags to item tags
Andrea Buntz Neiman [Wed, 24 Apr 2019 18:00:42 +0000 (14:00 -0400)]
docs: updating copy tags to item tags

Changed all appropriate references from copy to item.  Included references to a
couple updated screenshots.  Changed the name of the file from
copy_tags_cataloging.adoc to item_tags_cataloging.adoc.

Signed-off-by: Andrea Buntz Neiman <abneiman@equinoxinitiative.org>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
5 years agoDocs: Adding and updating alt tags, fixing typos
Andrea Buntz Neiman [Wed, 24 Apr 2019 15:03:46 +0000 (11:03 -0400)]
Docs: Adding and updating alt tags, fixing typos

Changes a item -> an item
Also changes image alt tags to reflect the copy -> item language change
Also adds missing alt tags

Signed-off-by: Andrea Buntz Neiman <abneiman@equinoxinitiative.org>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
5 years agoDocs: Updating Terminology
Cheyenne Jones [Mon, 5 Nov 2018 20:29:18 +0000 (12:29 -0800)]
Docs: Updating Terminology

This updates outdated terms like copy, volume, and copy location with
the up-to-date item, call number, and shelving location.

Signed-off-by: Cheyenne Jones <44786394+Cheyenne-jones@users.noreply.github.com>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
5 years agoDocs: LP1826263: Update batch_importing_MARC.adoc
Kristy Bauman [Wed, 24 Apr 2019 20:12:32 +0000 (16:12 -0400)]
Docs: LP1826263: Update batch_importing_MARC.adoc

Signed-off-by: Kristy Bauman <45376827+kraeb@users.noreply.github.com>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
5 years agoLP#1823367: (follow-up) revert renaming of eg.cat.transfer_target_vol
Galen Charlton [Thu, 1 Aug 2019 18:33:45 +0000 (14:33 -0400)]
LP#1823367: (follow-up) revert renaming of eg.cat.transfer_target_vol

This local storage key is expected by AngularJS interfaces, and
the AngularJS item status page in particular remains relevant for
now. This prevents a regression whereby marking a call number/volume
target in the Angular Holdings View interface would not set a
target that would work when trying to initiate a transfer from the
AngularJS Item Status interface.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoLP1823367 Volume moniker migration continued
Bill Erickson [Thu, 18 Jul 2019 21:30:56 +0000 (17:30 -0400)]
LP1823367 Volume moniker migration continued

Map a server-generated 'volume' field to its local/client equivalent of
'callNum'.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoLP1823367 Move away from "volume" moniker internally
Dan Wells [Thu, 18 Jul 2019 19:20:39 +0000 (15:20 -0400)]
LP1823367 Move away from "volume" moniker internally

It isn't really correct to use "volume" and "call number"
interchangeably.  This code substitutes various forms of the second
for various forms of the first within the internal variable and
function names.  To help contain the change, it tries to only do so
for values which are native to eg2, and not leaking from or into other
interfaces.

Understanding that this change is somewhat disruptive, I still think it
is in our overall best interest, as it will help us from falling into
old habits, and it will help future coders better understand the
relationship between the code and the interface.

Note, this code does not change any filenames.  This is for review
purposes to allow the changes to be more easily observed.  If accepted,
we should change couple of affected filenames as well.

Signed-off-by: Dan Wells <dbw2@calvin.edu>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoLP1823367 Re-fix Copy to Item name changes
Dan Wells [Thu, 18 Jul 2019 17:53:13 +0000 (13:53 -0400)]
LP1823367 Re-fix Copy to Item name changes

Most of these changes already exist in the AngularJS client, so let's
bring them over to Angular to keep with current practice.  Also, fix two
pesky "Volume" labels which didn't make the previous commit.

Signed-off-by: Dan Wells <dbw2@calvin.edu>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoLP1823367 Ang catalog replace 'Volume' with 'Call Number'
Bill Erickson [Wed, 17 Jul 2019 16:36:10 +0000 (12:36 -0400)]
LP1823367 Ang catalog replace 'Volume' with 'Call Number'

Update references in the Angular staff catalog for "Volume" with the
preffered "Call Number".

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoLP1823367 Grid toolbar checkbox onChange repairs
Bill Erickson [Tue, 28 May 2019 16:15:34 +0000 (12:15 -0400)]
LP1823367 Grid toolbar checkbox onChange repairs

Update checkbox onChange handler in the grid toolbar to emit an event
instead of trying to call the handler like a function.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoLP1823367 Catalog ident query improvements
Bill Erickson [Tue, 28 May 2019 15:00:39 +0000 (11:00 -0400)]
LP1823367 Catalog ident query improvements

* Default to ISBN search in the identifier query form.

* Remove the disabled "call number browse" entry from the identifier
  query type selector, since CN browse now has a dedicated tab.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoLp 741788: Add marc_stream_importer.pl to .gitignore
Jason Stephenson [Thu, 1 Aug 2019 13:38:43 +0000 (09:38 -0400)]
Lp 741788: Add marc_stream_importer.pl to .gitignore

Add Open-ILS/src/support-scripts/marc_stream_importer.pl to .gitignore
to avoid the following message when updating or changing branches:

error: The following untracked working tree files would be overwritten by checkout:
Open-ILS/src/support-scripts/marc_stream_importer.pl
Please move or remove them before you switch branches.
Aborting

Signed-off-by: Jason Stephenson <jason@sigio.com>
Signed-off-by: Jason Boyer <jboyer@library.in.gov>
5 years agoLP#1805895 Bucket grid configuration updates do not save
Dan Briem [Fri, 5 Jul 2019 23:34:13 +0000 (19:34 -0400)]
LP#1805895 Bucket grid configuration updates do not save

Some saved columns stick, but others are ignored. Issue affects eg-grid[s]
that use the auto-fields attr to load all columns on idl-class attr. This
is because saved columns are whitelisted against the initial column config
before the auto fields are loaded.

Patch adds $scope.handleAutoFields() to egCore.hatch.getItem. This happens
after the eg-grid-fields transclude (no collisions) but before the saved
columns are whitelisted. The original call remains to handle cases where
there is no persist-key or saved config.

Test:
1. Go to Circulation->User Buckets
2. Add the Is Deleted column to the grid
3. Save columns and refresh (note Is Deleted is not visible)
4. Apply patch and repeat steps 1-3 (note Is Deleted is now visible)

Signed-off-by: Dan Briem <dbriem@wlsmail.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Jason Boyer <jboyer@library.in.gov>
5 years agoLP1796936: Add aria-labels to the checkboxes in web client grids
Jane Sandberg [Fri, 12 Apr 2019 20:03:46 +0000 (13:03 -0700)]
LP1796936: Add aria-labels to the checkboxes in web client grids

To test:
1) Go to an AngularJs grid interface.  Make sure that the "Select all"
checkbox has an aria-label attribute of "All rows"
2) In the same interface, make sure that each checkbox in the
non-header rows has an aria-label like "Row 15", "Row 23", etc.
3) Repeat steps 1-2 for an Angular grid interface.

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoLP#1831788: (follow-up) address ng xi18n complaint about nested i18n elements
Galen Charlton [Thu, 1 Aug 2019 15:13:14 +0000 (11:13 -0400)]
LP#1831788: (follow-up) address ng xi18n complaint about nested i18n elements

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoLP1759864: Mark Item Damaged from Holdings View Fails
a. bellenir [Tue, 12 Mar 2019 15:09:02 +0000 (11:09 -0400)]
LP1759864: Mark Item Damaged from Holdings View Fails

"Mark Item Damaged" fails on the holdings view and from the patron profile holds tab.

the javascript console indicates a dependency issue:
Error: [$injector:unpr] Unknown provider: egItemProvider <- egItem

egItem is defined in web/js/ui/default/staff/circ/services/item.js

resolved by including the item.js source in the index.tt2 template files for both screens.

Signed-off-by: a. bellenir <abelleni@grpl.org>
Signed-off-by: Remington Steed <rjs7@calvin.edu>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
5 years agoLP1775920: Improve consistency in item status menus
Jane Sandberg [Thu, 25 Apr 2019 19:49:19 +0000 (15:49 -0400)]
LP1775920: Improve consistency in item status menus

To test:

1) Go into item status and scan in a few barcodes.
2) Select one of the items from the grid.
3) Click on the Actions menu.  Note the list of actions.
4) Click the Detail View button.
5) Click the Actions menu.  Note that several actions from
step 3 are missing.
6) Apply this commit.
7) Repeat step 5.  Make sure that all the actions are now
available on the Detail View actions menu (although some have
slightly different names, to match the clarifying wording
introduced in lp1717551)
8) Make sure that all the actions work correctly.

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Dawn Dale <ddale@georgialibraries.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoLP1681930 fm_IDL.xml billing/paid total column type correction.
Geoff Sams [Thu, 7 Mar 2019 02:54:15 +0000 (20:54 -0600)]
LP1681930 fm_IDL.xml billing/paid total column type correction.

Both xact_billing_totals and xact_paid_totals had incorrect unvoided
sum column types of int, this corrects them both to money instead.

Signed-off-by: Geoff Sams <gsams@roanoketexas.com>
Signed-off-by: Rogan Hamby <rogan.hamby@gmail.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoLP1832146: Make sure that comboboxes don't get cut off
Jane Sandberg [Mon, 10 Jun 2019 03:57:49 +0000 (20:57 -0700)]
LP1832146: Make sure that comboboxes don't get cut off

To test:
1) Go to the sandbox and open the accordion.
2) Open the combobox. Note that it isn't cut off.
3) Go to Administration > Acquisitions Administration
> Exchange Rates.
4) Click New Exchange Rate.
5) Go to the "From Currency" and "To Currency" fields.
6) Note that the dropdowns are visible and not cut off.

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoLP1831390: Don't clobber startId of combobox with null values
Jane Sandberg [Fri, 26 Jul 2019 18:28:13 +0000 (11:28 -0700)]
LP1831390: Don't clobber startId of combobox with null values

Also ensures that writeValue accepts only ComboboxEntry values,
so [(ngModel)] both gives and receives ComboboxEntry values, rather
than a confusing mix.

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoLP1831390: Fixing implementation of registerOnTouch
Jane Sandberg [Mon, 8 Jul 2019 13:44:53 +0000 (06:44 -0700)]
LP1831390: Fixing implementation of registerOnTouch

This commit ensures that the onTouch callback is called on the blur
event, per the official Angular documentation.

Also improves the display of default values in the datepicker

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoLP1831390 ControlValueAccessor continued
Bill Erickson [Fri, 28 Jun 2019 19:07:03 +0000 (15:07 -0400)]
LP1831390 ControlValueAccessor continued

Make eg-date-select traffic in Date objects instead of YMD strings.
Added simple combobox [(ngModel)] example.
Added combobox freetext testing
Avoid forcing startIdFiresOnChange for combobox.
Avoid redundant FormsModule import.
Minor lint repairs.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoLP1831390: combobox and date-select implement ControlValueAccessor
Jane Sandberg [Tue, 25 Jun 2019 18:17:07 +0000 (11:17 -0700)]
LP1831390: combobox and date-select implement ControlValueAccessor

This makes both components compatible with [(ngModel)] and
reactive forms.

Also adds sandbox examples.

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoLP1831788: (follow-up) removing small linting errors, unused imports
Jane Sandberg [Wed, 31 Jul 2019 21:19:08 +0000 (14:19 -0700)]
LP1831788: (follow-up) removing small linting errors, unused imports

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoLP#1831788: (follow-up) properly handle case where filter value is 0
Galen Charlton [Wed, 31 Jul 2019 20:15:21 +0000 (16:15 -0400)]
LP#1831788: (follow-up) properly handle case where filter value is 0

To test
-------
[1] In the sandbox's copy grid, display the status column and filter
    by the 'Available' status (ccs.id = 0).
[2] Verify that the correct rows are returned.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
5 years agoLP1831788 Add EgCoreModule for CommonWidgetsModule, etc.
Bill Erickson [Wed, 31 Jul 2019 18:21:18 +0000 (14:21 -0400)]
LP1831788 Add EgCoreModule for CommonWidgetsModule, etc.

Collect core objects into their own module so they may be imported
without requiring task-specific modules to import EgCommonModule, which
provides a lot more than most sub-modules need.

In the case of CommonWidgetsModule, it required access to the
FormatPipe, which is a core object, originally exported from
EgCommonModule.  However, EgCommonModule was overkill for
CommonWidgetsModule and importing it would likely have created other
dependency problems.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
5 years agoLP1831788 dialog dismissal and i18n repairs
Bill Erickson [Wed, 31 Jul 2019 18:56:43 +0000 (14:56 -0400)]
LP1831788 dialog dismissal and i18n repairs

Update sandbox dialog error handling to treat all error conditions as
errors.  Dialogs no longer produce an error on dismissal, they just
complete the obvservable.

Add i18n-placeholder attributes to some grid filter placeholder text.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
5 years agoLP#1831788: (follow-up) rename grid method
Galen Charlton [Tue, 30 Jul 2019 20:05:27 +0000 (16:05 -0400)]
LP#1831788: (follow-up) rename grid method

Specifically, reloadSansPagerReset() =>  reloadWithoutPagerReset()

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
5 years agoLP#1831788: (follow-up) update sandbox example
Galen Charlton [Tue, 30 Jul 2019 20:02:49 +0000 (16:02 -0400)]
LP#1831788: (follow-up) update sandbox example

- dialog adjusted for LP#1823041 changes
- typo fixed

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
5 years agoLP#1831788: add user-level release notes
Galen Charlton [Wed, 5 Jun 2019 17:27:43 +0000 (13:27 -0400)]
LP#1831788: add user-level release notes

Sponsored-by: MassLNC
Sponsored-by: Georgia Public Library Service
Sponsored-by: Indiana State Library
Sponsored-by: CW MARS
Sponsored-by: King County Library System
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
5 years agoLP#1813788: add example of grid improvements to sandbox
Galen Charlton [Wed, 5 Jun 2019 15:18:14 +0000 (11:18 -0400)]
LP#1813788: add example of grid improvements to sandbox

This patch adds a new grid to the Angular sandbox page
that demonstrates the following features introduced
in the previous patch:

- grid filtering
- stick grid headers
- grid reloads without losing one's current paging
  location

Sponsored-by: MassLNC
Sponsored-by: Georgia Public Library Service
Sponsored-by: Indiana State Library
Sponsored-by: CW MARS
Sponsored-by: King County Library System
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
5 years agoLP#1831788: add result filtering and other improvements to the Angular eg-grid
Galen Charlton [Wed, 5 Jun 2019 15:19:36 +0000 (11:19 -0400)]
LP#1831788: add result filtering and other improvements to the Angular eg-grid

This patch enables users to filter results in Angular eg-grids that
use PCRUD-based data sources.

Filtering can be enabled in an eg-grid defintion by adding the following
attribute to <eg-grid>:

  [filterable]="true"

If, for some reason, a particular column should not be filterable by the
user, filtering can be disabled by passing false to the [filterable]
attribute of an <eg-grid-column> element like this:

  <eg-grid-column [sortable]="true" [filterable]="false"  path="barcode"></eg-grid-column>

When filtering is enabled, a new section of the grid header is displayed that
includes, for each filterable column:

* A drop-down menu letting the user specify an operator such as
  "is exactly", "exists" (i.e., is not null), "is greater than", and so
  forth. The drop-down also allows the user to clear a filter for a
  specific column or re-apply it after changing the operator.
* An input widget for setting the value to filter on. The type of input
  displayed depend on the IDL type of the column. For example, a text field
  will use a normal text <input>; an OU field will use an eg-org-select,
  a link to another IDL class will use a combobox, a timestamp field
  will use an eg-date-select, and so forth.
* A separate display of the current operator.

When filtering is enabled, the grid will also display a "Remove Filters" button
in the action bar.

Under the hood, the widgets for entering filtering parameters expect
the data source to have a "filters" key that in turn contains a
dictionary of PCRUD-style filtering conditions indexed by column name.
Consequently, a grid data source that wants to use filtering should
look something like this:

    this.acpSource.getRows = (pager: Pager, sort: any[]) => {
        const orderBy: any = {acp: 'id'};
        if (sort.length) {
            orderBy.acp = sort[0].name + ' ' + sort[0].dir;
        }

        // base query to grab everything
        let base: Object = {};
        base[this.idl.classes['acp'].pkey] = {'!=' : null};
        var query: any = new Array();
        query.push(base);

        // and add any filters
        Object.keys(this.acpSource.filters).forEach(key => {
            Object.keys(this.acpSource.filters[key]).forEach(key2 => {
                query.push(this.acpSource.filters[key][key2]);
            });
        });
        return this.pcrud.search('acp',
            query, {
            flesh: 1,
            flesh_fields: {acp: ['location']},
            offset: pager.offset,
            limit: pager.limit,
            order_by: orderBy
        });
    };

This patch also adds two related grid options, sticky headers and the ability
to reload the data source without losing one's current place in page.

Sticky headers are enabled by adding the following attribute to the
<eg-grid> element:

  [stickyHeader]="true"

When this is enabled, as the user scrolls the grid from top to bottom, the
header row, including the filter controls, will continue to remain visible
at the top of the viewport until the user scrolls past the end of the
grid entirely.

Reloading grids without losing the current paging settings can now be
done by a caller (such as code that opens an edit modal)  invoking a new
reloadSansPagerReset() method.

Implementation Notes
--------------------
[1] This patch adds special-case logic for handling the "dob" column,
    which is the sole date column in the Evergreen schema. Longer-term,
    it would be better to define a new "date" IDL field type that's
    distinct from "timestamp".
[2] stickyHeader currently makes only the grid header sticky, not both
    the header and the action bar. This outcome is a result of z-index
    messiness with the ng-bootstrap dropdown menu which I couldn't get
    past. However, the forthcoming grid context menus hopefully will
    be a reasonable amelioration.
[3] During testing it became evident that it would be handy to add
    support for open-ils.fielder as a grid data source at some
    point in the near future.

To test
-------
General testing can be done using the new second grid in the
Angular sandbox page added by the following test. Things to check
include:

- grid filter operators are displayed
- hitting enter in text inputs activates the filter
- the grid-level Remove Filters button works
- per-column filter clearing works
- operators have the expected results
- The header of both grids on the sandbox page is sticky. This can
  be tested by increasing the row count in the second grid and
  scrolling.

Sponsored-by: MassLNC
Sponsored-by: Georgia Public Library Service
Sponsored-by: Indiana State Library
Sponsored-by: CW MARS
Sponsored-by: King County Library System
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
5 years agoLP#1831788: create CommonWidgetsModule
Galen Charlton [Mon, 25 Mar 2019 19:27:05 +0000 (15:27 -0400)]
LP#1831788: create CommonWidgetsModule

This patch moves some commonly-shared components off to a separate
module. The immediate motivation is to avoid circular dependencies
when adding filtering widgets to eg-grid.

Components included in CommonWidgetsModule should be "core" in the
sense that they are unlikely to ever need to embed one another.

Sponsored-by: MassLNC
Sponsored-by: Georgia Public Library Service
Sponsored-by: Indiana State Library
Sponsored-by: CW MARS
Sponsored-by: King County Library System
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
5 years agoLP#1634244 - prevent bibs from being deleted when they have on-order, pending-order...
Rogan Hamby [Fri, 19 Apr 2019 19:39:57 +0000 (15:39 -0400)]
LP#1634244 - prevent bibs from being deleted when they have on-order, pending-order or new line items attached to them

Signed-off-by: Rogan Hamby <rogan.hamby@gmail.com>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
5 years agolp1034058 Disable Renewal Due Dates in the Past
Kyle Huckins [Thu, 23 May 2019 20:53:11 +0000 (20:53 +0000)]
lp1034058 Disable Renewal Due Dates in the Past

Apply minimum date and an out of range flag to prevent
selecting or inputting a past date when renewing items from
Circulation->Renew Items or Patron->Items Out->Actions->
Renew With Specific Due Date.

To test
-------
[1] Create a loan.
[2] From the patron's Item Out page, use the Renew With
    Specific Due Date action. Note that the date widget
    will allow you to specify a due date in the past.
[3] From the Circulation -> Renew interface, note that
    the date widget will also let you specify a due
    date in the past.
[4] Apply the patch and repeat steps #2 and #3. This time,
    a due date in the past cannot be entered, both via
    the calendar button and by direct entry in the text
    box.

Signed-off-by: Kyle Huckins <khuckins@catalyte.io>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
5 years agoLP#1006466 - remove testing upgrade script
Chris Sharp [Thu, 1 Aug 2019 11:25:37 +0000 (07:25 -0400)]
LP#1006466 - remove testing upgrade script

Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
5 years agoLP#1006466 - Stamping upgrade script
Chris Sharp [Thu, 1 Aug 2019 10:57:31 +0000 (06:57 -0400)]
LP#1006466 - Stamping upgrade script

Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
5 years agoadding fk constraint to hold_type on action.hold_request and reporter class
Rogan Hamby [Tue, 16 Apr 2019 16:49:07 +0000 (12:49 -0400)]
adding fk constraint to hold_type on action.hold_request and reporter class

Signed-off-by: Rogan Hamby <rogan.hamby@gmail.com>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
5 years agoLP1832148 Clear selection for deleted grid rows
Bill Erickson [Tue, 25 Jun 2019 14:44:57 +0000 (10:44 -0400)]
LP1832148 Clear selection for deleted grid rows

Ignore rows which are no longer present in the grid when displaying the
"X selected" rows label along the top of the Angular grid.

Additionally, teach the grid to clear selected indexes for rows that are
no longer present for a bit of low-impact release of memory.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
5 years agoLP1834969 Indicate failures in Angular login
Bill Erickson [Wed, 3 Jul 2019 15:05:47 +0000 (11:05 -0400)]
LP1834969 Indicate failures in Angular login

Display a Login Failed message in the Angular staff login form when a
login attempt fails.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoLP#1837478: stamp DB update
Galen Charlton [Wed, 31 Jul 2019 19:25:28 +0000 (15:25 -0400)]
LP#1837478: stamp DB update

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoLP1837478 Ang catalog recents/templates release notes
Bill Erickson [Thu, 25 Jul 2019 14:24:15 +0000 (10:24 -0400)]
LP1837478 Ang catalog recents/templates release notes

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoLP1837478 Angular Catalog Recent Searches & Templates
Bill Erickson [Mon, 22 Jul 2019 21:50:01 +0000 (17:50 -0400)]
LP1837478 Angular Catalog Recent Searches & Templates

Adds two new dropdowns (below basket actions) for recent searches
(similar to those found in the staff TPAC) and search templates.

Search templates are a new feature which allow staff to save canned
search filters/settings without the query content, so common searches
may be easily recalled.

For UI consistency and to preserve some space, the Basket Actions selector
is now a dropdown instead of a select element.

Adds a new workstation setting 'eg.catalog.search_templates' for storing
templates.

Includes a number of improvements to the underlying Catalog code and a
new ArrayUtil class, which adds a simple equals() function for comparing
arrays.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoDocs: LP#1813225: Adding brief release note
Jane Sandberg [Wed, 31 Jul 2019 19:23:31 +0000 (12:23 -0700)]
Docs: LP#1813225: Adding brief release note

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
5 years agoLP#1813225 Link Billing Location to Library Info
Terran McCanna [Wed, 13 Feb 2019 18:19:35 +0000 (13:19 -0500)]
LP#1813225 Link Billing Location to Library Info

Converts library shortname on billing details page to a
link which opens in a new tab so that staff can easily
get to library contact info.

Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org>
Signed-off-by: Garry Collum <gcollum@gmail.com>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
5 years agoLP1766982 - CSV downloads contain the string 'null' for null values.
Garry Collum [Fri, 18 May 2018 23:57:42 +0000 (19:57 -0400)]
LP1766982 - CSV downloads contain the string 'null' for null values.

Adds a check for null and undefined in the getItemTextContent function
in grid.js which is called by both the code to download grid data as
CSV and for printing grids.

To test
1. Place holds on a couple of titles, one of which has no author. In the
   test data TCN 226, The Crow, has no author data.
2. Pull up the Holds Pull List.
3. Download Full CSV - to download the CSV file and view it in a
   spreadsheet or text editor looking specifically at the Author column.
4. Print Full Grid - to view the data in a printout, since this function
   also affects printing.
5. Go back to the Holds Pull List and click on one of the barcodes under
   the Current Copy column.
6. Click on the List View.
7. Download Full CSV - open the resulting file to inspect the
   Alert Message data.
8. Apply patch and repeat steps 2-7.

Signed-off-by: gcollum <gcollum@gmail.com>
Signed-off-by: Josh Stompro <stompro@stompro.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoLP1779467: Fix bug with charging fees when marking item damaged.
Jason Stephenson [Sun, 3 Feb 2019 16:44:09 +0000 (11:44 -0500)]
LP1779467: Fix bug with charging fees when marking item damaged.

Revert the changes made to the mark_damaged function in the web staff
client code (Open-ILS/web/js/ui/default/staff/circ/services/circ.js)
earlier in this branch.  The new code does not handle the mark damaged
process correctly, but the original code does.

Signed-off-by: Jason Stephenson <jason@sigio.com>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org>
5 years agoLP 1779467: Fix Error When Marking Item on Hold as Discard/Weed
Jason Stephenson [Mon, 12 Nov 2018 14:17:11 +0000 (09:17 -0500)]
LP 1779467: Fix Error When Marking Item on Hold as Discard/Weed

Fix the following error when marking an on-hold item as Discard/Weed:

Can't use an undefined value as an ARRAY reference at
/usr/local/share/perl/5.18.2/OpenILS/Application/Circ.pm line 1393.

Signed-off-by: Jason Stephenson <jason@sigio.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
LP#1779467: Fix 'Dicard' typo

Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Signed-off-by: Jason Stephenson <jason@sigio.com>
Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
5 years agoLP 1779467: Fix SyntaxError: missing ) after argument list
Jason Stephenson [Mon, 5 Nov 2018 21:38:48 +0000 (16:38 -0500)]
LP 1779467: Fix SyntaxError: missing ) after argument list

Missing parenthesis in Open-ILS/web/js/ui/default/staff/cat/catalog/app.js
caused the titular error when searching the catalog.

Signed-off-by: Jason Stephenson <jason@sigio.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
LP 1779467: Fix typo in circ/renew/app.js.

Had copyies for copies in one location and this prevented marking an
item as Discard/Weed from working on the renew item interface.

Signed-off-by: Jason Stephenson <jason@sigio.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>