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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
Jason Stephenson [Sat, 27 Oct 2018 19:48:54 +0000 (15:48 -0400)]
LP
1779467: Enhance Mark Items Functionality
A new option to "Mark Item as Discard/Weed" is added to many actions
menus in the staff client. This command is connected to the back end
function open-ils.circ.mark_item_discard.
The back end functionality for the open-ils.circ.mark_item_* family of
functions is altered to provide more consistent behavior and to avoid
some strange situations that have come up in the past, such as items
with the Missing status having active transits or open circulations.
The code for "Mark Item as Damaged" and "Mark Item as Missing" are
altered to take advantage of the back end changes. NB: These changes
do not affect the "Mark Item as Missing Pieces" function, as that is
handled by different back end code.
Perl live tests are added for the backend functionality changes to
test that certain conditions works. Like most of our tests these
could be expanded to cover more potential situations.
See the release notes for more detail on changes in functionality.
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>
Galen Charlton [Wed, 31 Jul 2019 15:11:16 +0000 (11:11 -0400)]
LP#
1778414: (follow-up) update Angular client menu as well
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Garry Collum [Wed, 27 Jun 2018 20:08:34 +0000 (16:08 -0400)]
LP#
1778414 Add Item Status to the Catalog menu
This patch adds Item Status as an option in the Catalog menu.
Signed-off-by: Garry Collum <gcollum@gmail.com>
Signed-off-by: Meg Stroup <mstroup@statelibrary.sc.gov>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Galen Charlton [Mon, 6 May 2019 21:41:31 +0000 (17:41 -0400)]
LP#
1831784: fix Angular's formatting of DOB field
Otherwise, depending on the local time zone, the date displayed
could be off a day.
The 'dob' columns are currently the the _only_ database/IDL fields
that are truly dates, not timestamps, hence the hard-coded exception.
However, an alternative approach would be to define a new 'date'
field type in the IDL.
To test
-------
[1] Construct an eg-grid (say, on the Angular sandbox page) that retrieves
patron records. For users in North America, the birth dates are
likely off by a day.
[2] Apply the patch and repeat step 1. This time, the birth dates should
display as entered.
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: Galen Charlton <gmc@equinoxinitiative.org>
Galen Charlton [Wed, 31 Jul 2019 14:55:06 +0000 (10:55 -0400)]
LP#
1822414: (follow-up) remove au-linked fields sandbox editDialog
Otherwise, the drop-downs for the User and Capture Staff fields
will attempt to fetch all user IDs from the database, which would
be awkward if attempted on a large database.
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Bill Erickson [Sun, 26 May 2019 18:02:44 +0000 (11:02 -0700)]
LP1822414 Ang date select readOnly & fixes
Adds an @Input() readOnly field to eg-date-select. When set, the date
value will be displayed as plain text - no widget.
Teach the eg-fm-editor to pass the readOnly flag to the eg-date-select.
Includes sandbox example.
Fixes a display issue where the date select calendar button was bigger
than the paired input group adding text input, because the material
icon was too big.
2019-07-31 rebasing note: the style added in the original patch was
moved to data-select.component.css.
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Bill Erickson [Sun, 26 May 2019 18:01:40 +0000 (11:01 -0700)]
LP1822414 Angular format service formatValue pipe
Create a pipe version of FormatService.transform() function so strings
may be generated from fields directly in templates.
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Josh Stompro [Wed, 27 Feb 2019 21:07:43 +0000 (15:07 -0600)]
LP#
1798187 - Support CRLF and LF format for item status import files
Testing Plan:
Before patch, try to import a file in CRLF end of line format that includes
leading and trailing spaces, empty lines, lines of just spaces or
barcodes with spaces. The import will fail to load those items and will
stop processing when it hits certain situations.
After patch, try to import a file in CRLF EOL format that includes barcodes
with trailing spaces, leading spaces, barcodes with spaces, and/or
empty lines. The import will load all barcodes.
Signed-off-by: Josh Stompro <stompro@stompro.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Galen Charlton [Mon, 25 Mar 2019 19:21:46 +0000 (15:21 -0400)]
LP#
1831780: various improvements to the Angular date-select widget
Styling
-------
- the widget is now narrower
- the widget now enables form validation styles; in particular,
entry of an incorrectly-formatted date is now highlighted
- the calendar drop-down is now allowed to overflow the containing
element when expanded, making it easier to embed the date
selector in other controls
- the calendar button (and any material icons button that's part of
an input group) now has the same default font size as main text,
making the overall date-select look cleaner
API
---
- add a reset() method
- hitting enter in the text box can now triggers emitting date
change events
- a new onCleared event is emitted if the suer hits enter on an
empty input
- onChangeAsYmd() now pads month and day to two digits apiece,
making the result conform to ISO 8601 and thus more easily
plugged into queries.
- adds the following methods to retrieve the current date; these
are meant to be used via local template references in parent
templates:
currentAsYmd()
currentAsIso()
currentAsDate()
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>
Galen Charlton [Tue, 4 Jun 2019 14:01:27 +0000 (10:01 -0400)]
LP#
1831783: improvements to the Angular org-select widget
- add reset() method
- add method for retrieve current selected OU. This can be invoked
from local template references in parent templates like this:
<button ... (click)="doAction(ousel.selectedOrg())" ...
...
<eg-org-select (onChange)="doAction($event)" #ousel></eg-org-select>
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>
Galen Charlton [Tue, 30 Jul 2019 18:44:16 +0000 (14:44 -0400)]
LP#
1831907: bump up ng-bootstrap
This bumps up ng-bootstrap to ^4.2.0, which as of the date
of this patch resolves to 4.2.1. Also as of the date of this
patch, ng-bootstrap 5.1.0 is available, but cannot be used
prior to upgrading Angular from 7 to 8.
To test
-------
[1] Install the patch.
[2] In the sandbox (/eg2/en-US/staff/sandbox) verify that keyboard
navigation for the grid action menu's dropdowns works.
[3] Look for other oddities in the Angular client.
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Bill Erickson [Wed, 17 Apr 2019 14:51:45 +0000 (10:51 -0400)]
LP1683385 AngJS grid avoid dupe auto-fields
When generating grid fields from an IDL class in the AngJS grid, avoid
adding any fields that match fields already defined in the markup.
An example of such a grid is the Pending Item Buckets page.
To test
-------
[1] Go to Item Buckets and add an item to the Pending Items page.
[2] Note that in the column picker there are two barcode fields,
one that hyperlinks the item and one that does not.
[3] Apply the patch and repeat steps 1-2.
[4] This time, there is only one barcode column (the one that
hyperlinks the results).
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Jane Sandberg [Wed, 19 Dec 2018 23:51:25 +0000 (15:51 -0800)]
LP1809183: Allow passing template to eg-confirm-dialog
Adds an input called dialogBodyTemplate to <eg-confirm-dialog>. This can
be useful when you want to pass ICU messages to <eg-confirm-dialog>
(e.g. "Are you sure you want to cancel these 3 holds?" vs. "Are you sure
you want to cancel this hold?").
If both dialogBody and dialogBodyTemplate are defined, it will show the
dialogBodyTemplate message.
Also adds a sandbox example.
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Jane Sandberg [Wed, 17 Jul 2019 21:24:49 +0000 (14:24 -0700)]
LP1836962: correcting comments in the Angular client
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Bill Erickson [Wed, 29 May 2019 18:03:38 +0000 (14:03 -0400)]
LP1830424 Implement Angular "retrieve last bib record"
Repair the Angular navbar menu entry for "Retrieve Last Bib Record" by
replacing the copy/paste'd ng-click handler with an Angular (click)
handler and local implementation.
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Bill Erickson [Mon, 29 Jul 2019 15:36:38 +0000 (11:36 -0400)]
LP1831785 Combobox pcrud selector and pkey support
Teach the PCRUD-driven combobox to use the IDL class' selector field
as the sort and display field when no idlField value is provided.
Teach the async source to use the pkey field of the IDL class instead of
assuming the 'id' field.
Tweak the sandbox example to fetch data for a class which uses a
selector not called "name" and a pkey not called "id".
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Jane Sandberg [Sat, 27 Jul 2019 17:50:40 +0000 (10:50 -0700)]
LP1831785 (follow-up): simplifying static string binding, removing empty else statement
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Jason Etheridge [Wed, 5 Jun 2019 15:42:29 +0000 (11:42 -0400)]
LP#
1831785: eg-combobox support automatic pcrud-based IDL data sources
This patch adds new idlClass and idlField attributes to eg-combobox to
enable it to automatically construct a pcrud-base data source. The
idlClass property specifies which table/class to use as the base
data source, while idlField specifies the label to display. If idlField
is not supplied, the label field defaults to "name".
It also adds an asyncSupportsEmptyTermClick option to specify that an
async data source (whether or not it is automatically built) is
expected to never return more than a couple hundred entries or so;
when supplied, it will allow fetching the entire contents of the
data source when the user clicks on the drop-down.
To test
-------
[1] Apply the patch and exercise the comboboxes on the
Angular sandbox page (/eg2/en-US/staff/sandbox)
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: Jason Etheridge <jason@EquinoxInitiative.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Galen Charlton [Fri, 24 May 2019 18:04:33 +0000 (14:04 -0400)]
LP#
1796903: (follow-up) disabled the calendar button when the text input is disabled
Disabling the calendar button when the datepicker is disabled allows
ChromeVox (at least) to skip past a button that cannot be invoked
until (like is possible in the checkout page) the picker is enabled.
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Jane Sandberg [Tue, 9 Oct 2018 14:37:56 +0000 (07:37 -0700)]
LP1796903: Make date picker calendar button more accessible
To test:
1) After applying this commit, navigate to a place in the Web client
that includes a date picker (such as the checkin screen).
2) Hover over the calendar button with your mouse and confirm that a
tooltip appears.
3) Verify that the button element has an aria-label attribute.
4) Verify that the button element has an aria-pressed attribute that
is false when the date picker is closed; true when it is open.
5) Use a screen reader (like NVDA or ChromeVox). Verify that when you
tab over to the date picker, the user is informed of the aria-label
and aria-pressed values
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Galen Charlton [Tue, 30 Jul 2019 14:21:17 +0000 (10:21 -0400)]
LP#
1795972: stamp DB update
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Chris Sharp [Mon, 20 May 2019 19:07:08 +0000 (15:07 -0400)]
LP#
1795972: Add description for APPLY_WORKSTATION_SETTING permission.
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
Signed-off-by: Kyle Huckins <khuckins@catalyte.io>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Kyle Huckins [Thu, 11 Jul 2019 16:36:36 +0000 (16:36 +0000)]
lp1836229 Disable Edit buttons in Merge Records when Editing
- Apply disabled attribute to Edit buttons rather than just the class,
preventing users from clicking buttons that appear disabled in the Merge UI.
Signed-off-by: Kyle Huckins <khuckins@catalyte.io>
Changes to be committed:
modified: Open-ILS/src/templates/staff/cat/bucket/record/t_merge_records.tt2
Signed-off-by: Garry Collum <gcollum@gmail.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Galen Charlton [Wed, 22 May 2019 18:57:52 +0000 (14:57 -0400)]
LP#
1776003: show codes throughout the Physical Characteristics Wizard
This patch extends on the previous one to show the code (as well as the
label) in all drop-downs used in the Physical Characteristics Wizard. It
also makes the drop-down text accessible for translations, in case there
are any locales where "code: label" is not preferred.
This patch also adds release notes.
To test
-------
[1] Apply the patches and use the web staff MARC editor to edit or
create an 007 field, then use the Physical Characteristics Wizard.
[2] Verify that the drop-downs now display both the code and the label
for each value.
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
a. bellenir [Thu, 23 Aug 2018 19:42:28 +0000 (15:42 -0400)]
LP#
1776003: Show MARC Code in 'Category of Material' in Physical Characteristics Wizard
display the ptype_key from the marc21_physical_characteristic_type_map (cmpctm)
alongside the label in the physical characteristics wizard
Signed-off-by: a. bellenir <ab@grpl.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Galen Charlton [Wed, 22 Apr 2015 17:37:29 +0000 (17:37 +0000)]
LP#741788: install the MARC stream importer better
This patch ensures that marc_stream_importer.pl gets
installed in the Evergreen binary directory and that an
example configuration file gets installed in the appropriate
configuration directory (rather than, as in the past,
the Evergreen bindir).
This patch also causes `oils_header.pl`, which is used by
other command-line scripts, to be installed in the bin
directory
by default.
To test
-------
[1] Run a normal Evergreen installation. Verify that
marc_stream_importer.pl is installed in /openils/bin
(or the equivalent if you've chosen a non-default installation
directory) and that marc_stream_importer.conf is
installed in /openils/conf (or its equivalent)
[2] (optional) If you have access to OCLC Connexion, verify that you
can run the MARC stream importer and use it to push records into
Evergreen.
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Josh Stompro <stomproj@larl.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Jason Stephenson <jason@sigio.com>
Ben Shum [Thu, 4 Jul 2019 19:53:35 +0000 (15:53 -0400)]
LP#
1835458: Add install support for Debian 10 Buster
Signed-off-by: Ben Shum <ben@evergreener.net>
Signed-off-by: Jason Stephenson <jason@sigio.com>
Jason Stephenson [Tue, 2 Jul 2019 16:53:16 +0000 (12:53 -0400)]
LP#
1834208: Use X-Forwarded-For in example Apache configuration
Change X-Real-IP to X-Fowarded-For in Open-ILS/examples/apache_24/
eg_vhost.conf.in to match changes in the OpenSRF example proxy
configurations for nginx and haproxy.
Signed-off-by: Jason Stephenson <jason@sigio.com>
Signed-off-by: Ben Shum <ben@evergreener.net>
Jane Sandberg [Thu, 18 Jul 2019 15:22:35 +0000 (08:22 -0700)]
LP1837067: Fixing unsubscribed Observable in Replace Barcodes dialog
To test:
1) In the experimental Angular staff catalog, open up a bib record.
2) Open the Holdings View tab.
3) Select several items.
4) Use the Actions for Selected Rows menu to Replace Barcodes
5) Change the first barcode to something recognizable. Click the
Replace Barcode button.
6) Note that the dialog opens again to ask you to replace the
barcode you just added.
7) Apply this patch.
8) Repeat steps 1-5.
9) Note that the dialog opens again to ask you to replace the next
barcode.
Also removes some unused imports, and consolidates two RxJS pipes that
were next to one another.
Bill's Additions:
Removes an unnecessary throwError which was called every time the dialog
completed.
NOTE: the source of the bug was that the Observable returned by
pcrud.search(...) was never subscribed-to, so it never fired. Calling
.toPromise() forces the observable to execute.
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Dan Wells [Wed, 29 May 2019 19:17:31 +0000 (15:17 -0400)]
LP#
1823367 Make search bar area neutral
Though the color had started to grow on me, let's go back to neutral for
the top seach area, for now.
It both makes sense and would be useful to have a secondary decorative
color, but if we go that route, we probably want just one for the whole
application, so we will want to tread carefully there.
Signed-off-by: Dan Wells <dbw2@calvin.edu>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Dan Wells [Wed, 29 May 2019 17:32:49 +0000 (13:32 -0400)]
LP#
1823367 Add place to collect style guidelines
Let's start a place to collect some of the reasoning behind EG2 style
choices. This will help us be more consistent, and to recall why things
are as they are.
This commit does nothing groundbreaking, but rather tries mainly to
capture what is already being done.
Signed-off-by: Dan Wells <dbw2@calvin.edu>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Dan Wells [Wed, 29 May 2019 17:06:50 +0000 (13:06 -0400)]
LP#
1823367 De-encapsulate holdings grid styles to fix row highlighting
By default, Angular will encapsulate CSS styles at the component level,
applying them only to the component who loads them. The encapsulation
is helpful in some circumstances, a burden in others, and can be worked
around in at least two ways.
One way is the use of ':host /deep/' in the style declaration. This
will in effect apply the style to all child components of the current
component's host, and is what we were doing here to style the grid rows
internal to the holdings component. This worked, but the encapsulated
style is created in such a way that it overrides any global styles. In
addition, /deep/ is deprecated (although with no clear replacement).
A second way to work around CSS encapsulation is to simply disable it.
Right now, our grid styles are all at the global level, as encapsulation
is disabled in the grid. Combined with the facts above, the end result
is that our new row styles always trump the grid highlight style, and
the rows no longer highlight.
There are a number of ways to work around this, but none seemed
obviously better than the others at this stage of development. This
commit does both the simplest option and the one which matches the
existing grid practice. That is, it disables CSS encapsulation for the
holdings component so that the holdings styles can coexist with, and be
overridden by, the grid styles (as needed in this case).
Signed-off-by: Dan Wells <dbw2@calvin.edu>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Dan Wells [Wed, 29 May 2019 16:55:48 +0000 (12:55 -0400)]
LP#
1823367 Tone down org unit row coloring
Some of the text was a little hard to see, and the overall effect of
the many colors, while attractive, was also a little distracting. In
addition, the lighter blue colors were not obviously different from
our standard selected-row-highlight blue.
This commit tries a different direction, using some mild green shades
based on the standard Evergreen green color base. They are easy to
read and still accomplish the overall goal of bringing out the org
units (a little) and the call numbers (a little more).
Signed-off-by: Dan Wells <dbw2@calvin.edu>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Galen Charlton [Wed, 3 Jul 2019 21:53:01 +0000 (17:53 -0400)]
LP#
1777207: teach egGrid how to prepend rows more efficiently
The checkin and checkout grids in the AngularJS client have
been doing full grid refreshes when adding a checkin or
checkout to their respective grids. While this does not
result in re-fetching data for the loans that were already
processed, as more entries get added to the grid the time
it takes to do a full digest of the grid contents during a
egGrid.collect() (which empties the list of displayed rows,
then refills it), gets progressively longer. Grids that have
only ~40 entries have been observed to take several seconds
purely on the AngularJS rendering phase.
This patch teaches egGrid a new prepend() method that
takes the first element from the underlying data source and
unshifts it onto the list of displayed grid rows, saving much
rendering time. The prepend() method will also force the
grid offset back to 0 if it isn't already. Note that if
an item that would be added via prepend() might duplicate an
existing row entry, prepend() will do a full collect() instead.
If the data source has sort options set, the prepend() will
remove them. For arrayNotifier-based data sources, as are used
in the checkin and checkout grids, this means that if the user
sorts the contents of the grid, then does a circ transaction,
the new transaction will still appear at the top of the list.
Due to the way arrayNotifier currently works, the remaining
entries will retain their previous ordering.
As an implementation note, prepend() is likely going to work
/only/ for arrayNotifier grid data sources.
To test
-------
[1] In the checkin grid, check in a large number of items.
Note that the time it takes to each each item gets
progressively longer.
[2] Apply the patch and repeat step 1. This time, the time
for each checkin should not significantly vary.
[3] Verify that column sorting works as expected.
[4] Upon sorting the grid, do more checkins and note that
the new transactions show up at the top.
[5] Verify that the checkout grid continues to behave as expected.
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
Galen Charlton [Tue, 9 Jul 2019 18:43:18 +0000 (14:43 -0400)]
LP#
1777207: have eg-grid generate DOM nodes only for visible columns
This patch changes an ng-show to an ng-if to generate DOM nodes
for grid cells only for visible columns. Prior to this patch, all
grid cells were generated, but the ones that corresponded to hidden
columns would simply be set as hidden.
By not generating the cells unless they're meant to be visible, grid
refreshes for wide grids (like the checkin table) render much more
quickly for a couple reasons:
- simply that there are fewer DOM nodes to process
- probably more importantly, fewer AngularJS watches get
created
To test
-------
[1] In the checkin grid, check in a large number of items, then
observe/profile timing as you change the number of visible rows.
[2] Apply the patch and repeat step 1. This time, the grid
refreshe should be measurably (and visibly) faster.
[3] Test other AngularJS grids and verify that grid display and
grid actions are normal.
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
Jane Sandberg [Sun, 26 May 2019 01:46:03 +0000 (18:46 -0700)]
LP1828840: Option to hide grid save settings button in angular grid
To test:
1) Apply this commit.
2) Create an eg-grid in the Angular staff client without a persistKey
attribute (or use the one in the sandbox).
3) Compile the client and open the grid in your browser. Open the
column picker menu. Note that the Save button does not display.
4) Add an arbitrary value to the persistKey attribute.
5) Repeat step 3. Note that the Save button does display.
6) Change the value of the persistKey attribute to "disabled".
7) Repeat step 3. Note that the Save button does not display.
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Jane Sandberg [Wed, 10 Jul 2019 04:33:41 +0000 (21:33 -0700)]
LP1835990: remove i18n inside i18n element
Angular doesn't allow an i18n element within another i18n element. This
commit allows xi18n to run successfully again.
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Bill Erickson [Tue, 9 Jul 2019 15:46:02 +0000 (11:46 -0400)]
LP1830432 Org family renders checkboxes horizontally
Consistent with the original layout of the org-select + checkboxes,
render the org family selector with checkboxes stacked vertically
along the right of the selector instead of below it.
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Jane Sandberg [Mon, 8 Jul 2019 14:03:50 +0000 (07:03 -0700)]
LP1830432: Use a stub callback with registerOnTouched
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Bill Erickson [Fri, 5 Jul 2019 15:18:59 +0000 (11:18 -0400)]
LP1830432 Uniqify reported org IDs / sandbox tweaks
Err on the side of caution and ensure the org family selector always
reports a unique list of org unit IDs.
Sandbox language tweaks.
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Jane Sandberg [Wed, 3 Jul 2019 16:46:04 +0000 (09:46 -0700)]
LP1830432: Make sure that unit tests have an org unit selected
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Jane Sandberg [Sun, 23 Jun 2019 17:22:20 +0000 (10:22 -0700)]
LP1830432: Make the org-family-select reusable
This commit removes Bill Erickson's automagic org unit select with
+Ancestors and +Descendants checkboxes from the admin-page component,
and gives it a component of its own, called <eg-org-family-select>.
This commit also makes it compatible with [(ngModel)], reactive forms,
and any custom Angular validators you might want to throw at it.
Examples of all three are available in the sandbox.
Also includes some component tests.
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Dan Wells [Wed, 3 Jul 2019 15:49:47 +0000 (11:49 -0400)]
Forward-port 3.3.2 upgrade script
Signed-off-by: Dan Wells <dbw2@calvin.edu>
Dan Wells [Wed, 3 Jul 2019 15:47:51 +0000 (11:47 -0400)]
Forward-port 3.2.7 upgrade script
Signed-off-by: Dan Wells <dbw2@calvin.edu>
Dan Wells [Wed, 3 Jul 2019 15:33:10 +0000 (11:33 -0400)]
Forward-port 3.1.13 upgrade script
Signed-off-by: Dan Wells <dbw2@calvin.edu>
Galen Charlton [Fri, 24 May 2019 15:06:04 +0000 (11:06 -0400)]
LP#
1830394: remove console noise from the holdings editor
This patch removes browser console noise that occurs (among other
places) when moving a working item to the completed list in
the holdings editor
TypeError: "$scope.working.MultiMap[keys[i]] is undefined"
hasMulti https://evergreen.example.org/js/ui/default/staff/cat/volcopy/app.js:1203
...
To test
-------
[1] Open the holdings editor to add or edit an item, then open the
browser debug console.
[2] Make a change and move the item from working to complete. Note
that the error message above shows up repeated in the
console log.
[3] Apply the patch and repeat steps 1 and 2. This time, the errors
should not appear.
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Kyle Huckins <khuckins@catalyte.io>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Dan Wells [Fri, 28 Jun 2019 19:59:17 +0000 (15:59 -0400)]
Docs: Revise 3.3.2 bugfix release notes
Signed-off-by: Dan Wells <dbw2@calvin.edu>
Galen Charlton [Mon, 17 Jun 2019 16:32:05 +0000 (12:32 -0400)]
LP#
1831781: tweaks to eg-help-popover
- Wrap the image in a button; this removes the need for setting
tabindex and makes the cursor display as a pointer when it
is over the popover.
- Add aria-label attributes
- add some usage comments
Thanks to Jane Sandberg for the feedback that inspired this patch.
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Cesar Velez [Wed, 6 Mar 2019 23:06:57 +0000 (18:06 -0500)]
LP#
1831781: add eg-help-popover Angular component
Usage:
<eg-help-popover helpLink="https://youtu.be/dQw4w9WgXcQ"
helptext="Helpful msg. Optional link."></eg-help-popover>
Additional placement attributes accepted. Basically wraps
ng-bootstrap's
https://ng-bootstrap.github.io/#/components/popover/examples#basic
To test
-------
[1] Go to the Angular sandbox page (/eg2/en-US/staff/sandbox) and
verify functioning of the popovers, which display question marks.
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: Cesar Velez <cesar.velez@equinoxinitiative.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Jason Boyer [Fri, 28 Jun 2019 11:42:40 +0000 (07:42 -0400)]
Correct False Positive on Offline Test
Now that we have filenames with hashes in them
the likelyhood of finding the numbers 4, 0, and 4
not as an http status are much higher, leading to
a false negative on tests that look at the http
status code. Looking for the string ' 404 ' narrows
the search to actual 404 errors (at least until we
have a file that's exactly 404 bytes long in the
offline interface).
Signed-off-by: Jason Boyer <JBoyer@library.in.gov>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
Kyle Huckins [Mon, 20 May 2019 17:54:00 +0000 (17:54 +0000)]
lp1735835 Transfer Bucket Contents to Pending
- Add new option in Copy/Record buckets to transfer select
items to Pending Copy/Records.
Signed-off-by: Kyle Huckins <khuckins@catalyte.io>
modified: Open-ILS/src/templates/staff/cat/bucket/copy/t_view.tt2
modified: Open-ILS/src/templates/staff/cat/bucket/record/t_view.tt2
modified: Open-ILS/web/js/ui/default/staff/cat/bucket/copy/app.js
modified: Open-ILS/web/js/ui/default/staff/cat/bucket/record/app.js
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Dan Wells [Fri, 21 Jun 2019 15:36:44 +0000 (11:36 -0400)]
LP#
1759343 Clean up data seed values
1) Add missing translation wrapper for new annotatepayment setting.
2) While we are at it, try to stem the proliferation of workstation
setting INSERT chunks. (More could be done here...)
Signed-off-by: Dan Wells <dbw2@calvin.edu>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
Dan Wells [Fri, 21 Jun 2019 15:16:59 +0000 (11:16 -0400)]
LP#
1759343 Fix annotate payment setting name
This setting was added to the database with the 'eg.' prefix, but in
the code it was not used. The end effect was that the setting likely
worked, but was not saved in the way expected.
This makes the setting name in the code match the DB.
Signed-off-by: Dan Wells <dbw2@calvin.edu>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
Galen Charlton [Mon, 17 Jun 2019 14:46:14 +0000 (10:46 -0400)]
LP#
1833080: have eg-bool recognize IDL bool string values
This patch updates eg-bool so that it can format both
true Boolean and IDL bool string values (i.e., 't' or 'f'). Prior
to this patch, IDL bool values would always be rendered as 'Yes'.
This patch relaxes the type restriction on the value setter
and getter; unfortunately, there's no way to overload the
setter or making it accept (say) boolean|string.A
This patch also supplies some unit sets.
To test
-------
[1] View an Angular grid that has Boolean fields. The Copy
Status server admin page is a good one.
[2] Note that the boolean values are all rendered as "Yes".
[3] Apply the patch and repeat step 1. This time, false
values should be displayed as "No".
[4] Verify that 'npm run test' for the Angular app passes.
Sponsored-by: PaILS
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Bill Erickson [Wed, 19 Jun 2019 20:41:26 +0000 (16:41 -0400)]
LP1823041 Confirm dialog returns true/false repairs
The new Observable-driven confirm dialogs return true or false depending
on the user response (or nothing if dismissed), so the calling code needs
to verify the user confirmed the request before continuing.
Removed an unused confirm dialog import for clarity.
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Bill Erickson [Wed, 19 Jun 2019 20:25:51 +0000 (16:25 -0400)]
LP1823041 Observable dialogs repairs and cleanup
Fixes a few instances where dialog.open() calls did not return
Observables.
Replace a number of calls to the now deprecated dialog.dismiss() with
calls to dialog.close().
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Bill Erickson [Wed, 19 Jun 2019 20:14:39 +0000 (16:14 -0400)]
LP1823041 Remove unintentially merged code blocks
A chunk of Angular code which was removed before merging this LP was
added back during the rebase/merge process. This removes the errant
code.
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Jane Sandberg [Wed, 19 Jun 2019 17:17:40 +0000 (10:17 -0700)]
LP1823041: Converting new dialogs to observables
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Bill Erickson [Wed, 3 Apr 2019 16:14:52 +0000 (12:14 -0400)]
LP1823041 Angular dialogs return observables
Dialog.open() now returns an observable to the caller. This allows
dialogs to pass 0 or more success events, error events, and close events
each as descrete actions to the caller.
Existing dialogs are updated to expect an Observable response to
.open().
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Jane Sandberg [Wed, 19 Jun 2019 13:49:35 +0000 (06:49 -0700)]
Docs: 3.3.2 release notes
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Jane Sandberg [Wed, 19 Jun 2019 13:44:58 +0000 (06:44 -0700)]
Docs: Release notes for 3.2.7
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Jane Sandberg [Wed, 19 Jun 2019 13:31:26 +0000 (06:31 -0700)]
Docs: 3.1.13 release notes
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Mike Risher [Mon, 10 Jun 2019 18:11:38 +0000 (11:11 -0700)]
lp1770217 Items Out count shouldn't increment on renew
Determine if this item is currently out to the patron and is being
checked out again. If so, be sure not to increment "Items Out" count.
Signed-off-by: Mike Risher <mrisher@catalyte.io>
Changes to be committed:
modified: web/js/ui/default/staff/circ/patron/checkout.js
modified: web/js/ui/default/staff/circ/services/circ.js
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Jane Sandberg [Mon, 10 Jun 2019 00:46:15 +0000 (17:46 -0700)]
LP1803787 (follow-up) removing unnecessary arguments
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Bill Erickson [Fri, 31 May 2019 15:47:03 +0000 (11:47 -0400)]
LP1803787 Migrate grid action/button click handlers; lint
Migrate the basic admin page and sandbox grids to use the click handlers
for grid toolbar buttons and actions, so the actions may be performed
against class methods instead of anonymous functions.
Minor lint repairs.
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Bill Erickson [Fri, 31 May 2019 15:45:52 +0000 (11:45 -0400)]
LP1803787 Grid actions menu tabindex
Allow the browser to focus the actions menu entries on tab so 'Enter'
action will not inadvertantly fire the row activate handler as well.
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Jane Sandberg [Fri, 17 May 2019 19:31:56 +0000 (12:31 -0700)]
LP1803787: Add keyboard support (Shift+F10)
This allows a user to set focus to a row using a checkbox, then
press the standard keyboard shortcut to open the row context menu.
This commit sets the Shift+F10 keyboard combination to fire the
contextmenu javascript event throughout the Angular staff client, so
other interfaces that need to override the browser's context menu should
be able to respond to Shift+F10.
To test:
1) Open an eg2 grid interface (Server Administration -> Authority
Thesaurus is a good one).
2) Use the tab key to set focus onto the checkbox for one of the rows.
3) Note that pressing Shift + F10 opens the browser's context menu.
4) Apply this commit
5) Repeat steps 1+2
6) Press Shift + F10.
7) Note that the context menu opens, and that you can use Tab and
Shift+Tab to move through the various actions.
8) Note that you can press the Esc key to exit the context menu
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Bill Erickson [Thu, 9 May 2019 15:50:19 +0000 (11:50 -0400)]
LP1803787 Grid toolbar actions menu component; cleanup
Moves the guts of the grid toolbar actions menu (the buttons) to a
dedicated component that can be shared by both the actions drop-down
menu and the actions popover. This adds support for honoring
disableOnRow for the popover actions. And avoids duplication.
Adds a sandbox example of using the toolbar action click event and
divider.
Some minor code cleanup/consistency changes.
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Bill Erickson [Wed, 6 Mar 2019 19:28:44 +0000 (14:28 -0500)]
LP1803787 Grid context retains selection; lint
During right-click (context-menu click) if the currently focused row is
already selected, avoid modifying the selection. If it's not, then
select the focused row only.
Minor lint, etc. repairs.
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Bill Erickson [Mon, 26 Nov 2018 18:21:36 +0000 (18:21 +0000)]
LP1803787 Grid actions context menu
Display a context menu including the grid actions for selected rows
links when right-clicking on a grid item.
Note the popover displays oriented to the bottom of the item instead of
the mouse click, which is not supported at time of dev.
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Bill Erickson [Mon, 26 Nov 2018 18:20:47 +0000 (18:20 +0000)]
LP1803787 Grid toolbar action separators
Add support for "separator" toolbar actions so the action menu may be
divided into groups.
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Jane Sandberg [Thu, 13 Jun 2019 20:57:14 +0000 (13:57 -0700)]
LP1759343: Stamping upgrade: annotate payment setting
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>