The pane in the web-based staff client to display penalties and messages
currently has a label of "Staff-Generated Penalties/Messages", which is
misleading as the list includes system-generated penalties and messages.
Modify this to "Penalties and Messages" to avoid the "/" construction
(which is considered harder to translate) and avoid the impression that
it contains only staff-generated penalties and messages.
Signed-off-by: Dan Scott <dscott@laurentian.ca> Signed-off-by: Ben Shum <ben@evergreener.net>
Actually installing a language also runs updatepo and subsequently attempts
to copy the various dtd and property files to their correct places.
Remove from the Makefile target for install, but retain the dtd web opac
folder which is apparently where we put fieldmapper and some other files
later.
Signed-off-by: Ben Shum <ben@evergreener.net> Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Bill Erickson [Tue, 6 Nov 2018 14:42:17 +0000 (09:42 -0500)]
LP#1797007 Grid cell tooltips apply to all cells (Ang)
Avoid excessive browser page re-flows, caused by checking cell
widths for rendering tooltips, by rendering tooltips for all cells
regardless of the size of the content.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Jason Boyer <jboyer@library.in.gov> Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Avoid excessive browser page re-flows, caused by checking cell widths
for rendering tooltips, by rendering tooltips for all cells regardless
of the size of the content.
Ben Shum [Mon, 5 Nov 2018 19:03:44 +0000 (14:03 -0500)]
LP#1757455: Deprecate i18n building for XUL client
Remove older dtds and properties files from the Makefile for i18n build
process.
To test
-------
[1] Apply patch.
[2] Make a change to a XUL properties or DTD file
[3] Run 'make newpot' in build/i18n.
[4] Verify that your change is not reflected in the updated POT files.
Signed-off-by: Ben Shum <ben@evergreener.net> Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
LP#1783440: adding UPC to numeric search types in advanced search
To test
-------
[1] Go the Advanced Search page in the public catalog, then to the
Numeric Search tab.
[2] Search on a UPC value (e.g., in Concerto, "883929159529").
[3] Verify that a hit is retrieved.
For some strange reason the volcopy bchannel event data.records
would be an array of string integers or a array of ints depending
on whether you're adding or editing holdings. This addresses that
weirdness.
Signed-off by: Cesar Velez <cesar.velez@equinoxinitiative.org>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
Mike Rylander [Fri, 14 Sep 2018 15:03:30 +0000 (11:03 -0400)]
LP#1684202: Protect against missing features; Make feature more general
I've wrapped the BroadcastChannel code in a test derived from the auth version
of the same concept. Also broadcasting the full set of record IDs and the
pre-update call number IDs for other interfaces that might be interested. The
channel name is also made more generic and made to follow the precedent from
the auth channel name.
Signed-off-by: Mike Rylander <mrylander@gmail.com> Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
Located URIs depend upon bib-level visibility, as there are no copies
to work with. The browse code, however, was joining in the copy
visibility table as if it would always have at least one row per bib,
but in the case of located URIs, it does not.
Let's change it to a LEFT JOIN to allow the bib row to show up, at
which point the existing bib visibility check can do its job.
Signed-off-by: Dan Wells <dbw2@calvin.edu> Signed-off-by: Mike Rylander <mrylander@gmail.com>
The default tab selection was not being honored from catalog searches,
as the search had already set $scope.record_tab, and we were honoring
that value in all cases.
Instead, let's honor that value in cases where the OPAC load doesn't
change our current record, which should only happen if we load the
record directly to a non-opac tab, then go to the OPAC view.
To test:
1) Set any tab other than "OPAC View" as your default view in record
details.
2) Do a catalog search.
3) Select a record, and notice your default view is not set.
4) Apply patch, do the same steps, and notice the default view is now
selected.
To test regression of bug #1708951:
1) In Firefox, load a record directly (e.g.
/eg/opac/staff/cat/catalog/record/123).
2) Note the default view loaded.
3) Click "OPAC View".
4) Note the view does not return to your default view, but stays on
the OPAC.
Signed-off-by: Dan Wells <dbw2@calvin.edu> Signed-off-by: Jason Boyer <JBoyer@library.in.gov>
Mike Rylander [Mon, 31 Jul 2017 19:55:34 +0000 (15:55 -0400)]
LP#1635737 Apply DST-aware timezone to context dates
Do our best to enforce the rule required by OpenSRF's interval_to_seconds
that when a context date is in use, and you care about DST awareness, you
must set the timezone to a DST-aware value, e.g., 'America/New_York'. In
most situations, 'local' will suffice for this, as the server is typically
configured with a DST-aware timezone in its environment. However, we will
look for an org unit setting called 'lib.timezone' and use that where we
can. See LP#1705524 for info on that setting.
Signed-off-by: Mike Rylander <mrylander@gmail.com>
Conflicts:
Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/Circulate.pm
Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/NonCat.pm
Signed-off-by: Dan Wells <dbw2@calvin.edu> Signed-off-by: Bill Erickson <berickxx@gmail.com>
Dan Wells [Fri, 21 Jul 2017 18:28:16 +0000 (14:28 -0400)]
LP#1635737 Use new OpenSRF interval_to_seconds() context
Use the optional context for interval_to_seconds() to account for the
variable length of duration components. For example, "1 day" may be
shorter or longer than 24 hours during a time change event, "1 month"
may be shorter or longer depending on which month it is currently, etc.
Also, remove some timestamp munging, as that happens within
interval_to_seconds() already.
Signed-off-by: Dan Wells <dbw2@calvin.edu> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Conflicts:
Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/Circulate.pm
Signed-off-by: Dan Wells <dbw2@calvin.edu> Signed-off-by: Bill Erickson <berickxx@gmail.com>
Dan Wells [Tue, 6 Nov 2018 20:13:47 +0000 (15:13 -0500)]
LP#1635737 Add optional context to interval_to_seconds
Any given interval (e.g. "1 month") can be a different amount of
seconds depending on the context (i.e. "1 month" after February 1 is
March 1, but "1 month" after March 1 is April 1, yet March is longer
than February). This affects months all the time, but also can
affect days, hours, and even seconds once you consider DST and "leap"
times.
By giving an optional context to interval_to_seconds, you can find
the true number of seconds in, for example, "1 month", when starting
from "February 1" (the context).
Signed-off-by: Dan Wells <dbw2@calvin.edu> Signed-off-by: Mike Rylander <mrylander@gmail.com> Signed-off-by: Bill Erickson <berickxx@gmail.com>
LP#1783602: Remove copy counts from mr search results page
The copy counts on the mr search results page can be wrong if a limiter was
applied to the metarecord search. Rather than supply inaccurate information to
the user, let's remove the counts from that page until a long-term solution can
be developed.
Kathy Lussier [Tue, 13 Mar 2018 16:54:42 +0000 (12:54 -0400)]
LP#1755543: Add help tips to Print Item Labels Settings tab
Instead of providing lengthy settings descriptions, which result in a lot of
scrolling on the Print Item Template page, let's use help tips that can
provide guidance to new users without adding clutter to the interface.
This commit also turns the field labels into HTML labels for improved
accessibility and removes borders on the page. The borders were helpful
when we displayed the help text on the page, but are no longer needed.
Garry Collum [Thu, 7 Jun 2018 18:54:45 +0000 (14:54 -0400)]
LP#1755896: Web Client mobile menu font color contrast.
When viewing the main menu in the web client in a small device or in a
browser with a width that is resized to less than 800px the menu
collapses and the submenu choices are difficult to read because of lack
of contrast. This patch adds some contrast.
To test:
1. View the web client in a browser and lessen the width until the menu
collapses, or view it in a small device.
2. Open some of the menu options to observe the submenus.
3. Apply the patch.
4. Refresh the browser and repeat steps 1-2 to view the more readable
submenus.
Galen Charlton [Mon, 5 Nov 2018 21:40:34 +0000 (16:40 -0500)]
LP#1789747: tweak disabling the offline circulation link
This patch ensures that the menu link can be fully disabled by
giving the "disabled" CSS class to the anchor as well as the
li that contains it. It also adds a CSS rule to the disabled
class to force the cursor to not-allowed; due to a quirk, an
anchor with "pointer-events: none" will not respect "cursor: not-allowed",
but the containing element can have that cursor rule.
Avoid page load failures when SharedWorkers (for offline mode) are
not supported. Additionally, disable the Offline Circulation menu
option when SharedWorkers are not supported.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Bill Erickson [Tue, 16 Oct 2018 18:15:53 +0000 (14:15 -0400)]
LP#1798170 Load grid data after settings are applied
Ensure the initial grid data fetching code does not fire until after the
grid configuration has been retrieved and applied. This fixes an issue
where custom columns would contain no values on initial grid load.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Jason Boyer <jboyer@library.in.gov> Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Use of mod_remoteip is technically optional, since it's not
required that Evergreen run with a proxy such as NGINX. However, since
use of proxies is common, enablig mod_remoteip just in case could
be useful with minimal cost.
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org> Signed-off-by: Bill Erickson <berickxx@gmail.com>
Galen Charlton [Mon, 5 Nov 2018 17:49:35 +0000 (12:49 -0500)]
LP#1801759: add mod_remoteip configuration to example Apache config
Text taken from an OpenSRF patch added by Bill Erickson per bug 1684970.
This patch adds an Apache configuration stanza that uses mod_remoteip
to pass the user agent's IP address to the HTTP translator. It is meant
for when Apache is being run behind a proxy such as NGINX.
To test
-------
[1] Set up Evergreen with Apache and the WebSockets server running
behind a proxy such as NGINX.
[2] Enable mod_remoteip (e.g., sudo a2enmod remoteip).
[3] Apply the Apache configuration change in this patch, uncommenting
out the directives and (if necessary) updating the internal IP
address of the proxy.
[4] Reload Apache.
[5] Perform an action that uses the HTTP translator, e.g., adding a
vendor record using the Dojo interface.
[6] Verify that the client IP logged is that of the user agent, not
the proxy.
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org> Signed-off-by: Bill Erickson <berickxx@gmail.com>
Jason Boyer [Fri, 26 Oct 2018 13:16:14 +0000 (09:16 -0400)]
LP1796988: Fix Saving Last Copy Template
A line that belongs within a forEach loop escaped
its bounds and caused a reference error that prevented
the applyTemplate function from saving the last used
template. This branch ushers this line back to its
pen where it can trouble us no more.
Signed-off-by: Jason Boyer <jboyer@library.in.gov> Signed-off-by: Janet Schrader <jschrader@cwmars.org> Signed-off-by: Jason Stephenson <jason@sigio.com>
Apply a default value to the browser client iframe URL so the iframe
does not attempt to load a copy of the current page. The default value
points to a simple loading page, displying "Loading..." plus our
standard spinny gif.
Progress gif copied from web/opac/images/ to web/images/ to avoid
dependence on the old opac directory.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Jason Boyer <jboyer@library.in.gov> Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Mike Rylander [Wed, 19 Sep 2018 14:38:42 +0000 (10:38 -0400)]
LP#1746536: Allow batch-apply to volume fields in multi-record context
I can't see a reason to restrict Batch Apply for volume fields in a multi-
record context, as all the data is gathered based on the volume owners, not
record information. This commit removes that restriction.
Cesar Velez [Wed, 12 Sep 2018 09:37:28 +0000 (05:37 -0400)]
LP#1746536 - enable volcopy editor for multi-bib but only volumes
This removes the disabling of the volcopy editor caused by
passing it a record id of 0. Allowing the Item Status grid's
Edit>Volumes to function as a way to batch edit volumes of
more than 1 bib record.
a. bellenir [Wed, 27 Jun 2018 18:48:56 +0000 (14:48 -0400)]
LP1746536: cannot edit vol/call number in item status
spawnHoldingsEdit was disabling record summary by passing record_id: 0
this change will provided the record_id if exactly one record is selected.
behavior is unchanged if multiple records are selected.
Signed-off-by: a. bellenir <ab@grpl.org> Signed-off-by: cesar velez <cesar.velez@equinoxinitiative.org> Signed-off-by: Mike Rylander <mrylander@gmail.com> Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Conflicts:
Open-ILS/web/js/ui/default/staff/circ/services/item.js
Dan Wells [Wed, 10 Oct 2018 20:07:24 +0000 (16:07 -0400)]
LP#1796978 Realign working copy refresh with proper condition
The "working copy" grid needs to update whenever the copy data above
updates. I *believe* this aligns the refresh with its intended
condition.
This appears to have come about via bug #1732761, so retesting of
that fix may be in order.
Signed-off-by: Dan Wells <dbw2@calvin.edu> Signed-off-by: Jason Stephenson <jason@sigio.com> Signed-off-by: Cesar Velez <cesar.velez@equinoxinitiative.org>
Dan Wells [Thu, 11 Oct 2018 13:21:05 +0000 (09:21 -0400)]
LP#1796971 Wait for call number and copy before loading locations
In cases where add a copy to a call number, we fetch the original
call number via async, then attach the new copy to it. Before this
commit, however, we were not waiting for the call number fetch
promise to resolve, so the copy wasn't there to use for limiting the
location load.
Since the async request is internal to a loop, one way out is to
capture that promise, then make sure it resolves before loading the
locations.
(We previously returned the copies from the internal function, but that
value wasn't being used anyway, so we don't worry about unwrapping the
$q.all() when it resolves.)
Signed-off-by: Dan Wells <dbw2@calvin.edu> Signed-off-by: John Amundson <jamundson@cwmars.org> Signed-off-by: Jason Stephenson <jason@sigio.com> Signed-off-by: Cesar Velez <cesar.velez@equinoxinitiative.org>
Support copying formatted addresses to the clipboard in the browser
staff client, similar to the XUL client. Action is performed via a new
link in the addresses section (next to "print") in the patron summary
sidebar.
This has the side effect of fixing a problem where the batch
edit timestamps were not wrapped correctly in Firefox.
To test
-------
1. Using user buckets, make some batch changes on some patrons and roll
back some of those changes.
2. Using Firefox, click on the 'View Batch Edits' button.
3. Note that the times dispayed are formatted as raw
database timestamps
4. Note that the summary for the user bucket displays the
create time as a raw database timestamp.
5. Navigate to a record bucket and note that its create
time is displayed as a raw timestamp as well.
3. Apply patch.
4. Repeat steps 2-5; this time, the times should be displayed
using the correct date and time format.
Garry Collum [Thu, 21 Jun 2018 23:41:48 +0000 (19:41 -0400)]
LP#1778083 Location, Floating, and Age Protect missing from Items Out
Adds columns for Location (Copy), Floating Group, and Age-based Hold
Protection to the items out grid.
To test.
1. View an items out screen to see that the Location, Floating Group,
and Age-based Hold protection columns are not available as options.
2. Apply the patch.
3. Edit some items and add definitions for Floating Group, and
Age-based hold protection.
4. Check out these items and other items that do not have a floating
group or age-based protection.
5. Display the Location, Floating Group, and Age-based Hold Protection
columns.
Galen Charlton [Fri, 5 Oct 2018 20:41:04 +0000 (16:41 -0400)]
LP#1770246: (follow-up) display the open-in-new-window/tab icon
Since the title links added by the previous patch intentionally open
the record in a new tab, display the corresponding icon to be
consistent with other interfaces.
Garry Collum [Fri, 1 Jun 2018 01:22:35 +0000 (21:22 -0400)]
LP#1770246 Catalog linked title column in query and pending buckets
To mirror the Record Bucket View grid, this patch adds a title column
in the query and pending bucket tabs that links to the catalog record
of the title displayed. The catalog record is opened in a new tab, so
the query and pending data is not lost.
Mike Rylander [Mon, 27 Aug 2018 16:08:37 +0000 (12:08 -0400)]
LP#1786987: Locale-less org tree cache object becomes stale
The autogen.sh script calls a function that flushes all org tree objects
cached by locale, but does not flush the one used when the locale is
unkown. This commit forces that flushing to occur.
berick: Definition of my $cache pushed up above first use.
Signed-off-by: Mike Rylander <mrylander@gmail.com> Signed-off-by: Bill Erickson <berickxx@gmail.com>
Add new release notes. Also, slight reorganization to the
acknowledgements section (move organizations to appropriate section, fix
sorting of COOL, use consistent name for BC Libraries).
Remove the grid-tooltip logic that captured the cell content into a
template-level variable so the content only needed to be generated once
for both the tooltip and cell display. This logic fails to handle cases
where the cell content is dynamic, typically the result of row
attributes being modified via external process.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Dan Wells <dbw2@calvin.edu>
LP#1789442: turn of Perl taint-checking on 14-OpenILS-Utils.t
This works around a bug in DateTime::TimeZone 1.63
<https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=737265> that
causes one of the new tests to spuriously fail on Ubuntu 14.04 LTS.
As the comment indicates, taint checking is not typically enabled
when running Evergreen, but we may want to consider changing
that should tuits arise.
LP#1789442: fix editing due date of hourly loans in web staff
This patch fixes a bug where editing the due date of an hourly
loan would result in the time portion always getting set to 00:00.
To test
-------
[1] Set up some daily and hourly loans in your database.
[2] Apply the patch.
[3] From the items out page, edit the due date for one or
more hourly loans. Verify that the resulting due date
is set correctly.
[4] From the items out page, edit the due date for some
daily loans and verify correctness. In particular,
verify that the resulting due date is /not/ the
following day if testing in time zones in the Americas.
LP#1552778: add timepicker to webstaff checkout page
This patch adds a timepicker to go along with the datepicker
if the operator invokes the option to set a specific due
date.
To test
-------
[1] Arrange circ policies to have both hourly and daily loans.
[2] Apply the patch.
[3] Check out an item for an hourly loan. Verify that the
due date and time is per policy.
[4] Check out an item for a daily loan. Verify that the
due date is per policy.
[5] Check out an item for an hourly loan, but set a specific
due date and time. Verify that the due date and time matches
the selected value.
[6] Check out an item for a daily loan, but set a specific
due date. Verify that the due date matches the selected
value; note that any time component is ignored since
for daily loans the time gets normalized to 23:59.
LP#1552778: make clean_ISO8601 recognize 'Z' as a timezone specifier
Prior to this patch, clean_ISO8601 would ignore 'Z' as a timezone
specifier (e.g., '2018-09-21T15:34:21Z') and treat it as if the
timestamp were in the server's time zone, leading to incorrect
results (e.g., '2018-09-21T15:34:21-04:00') unless user, client,
and server all happen to be in UTC+0. In particular, this allows
date strings emitted by the JavaScript Date object's toISOString()
method to be correctly parsed, as those strings invariably use
'Z' as the timezone specifier.
To test
-------
[1] Apply patch.
[2] Verify that regression test in t/14-OpenILS-Utils.t passes.
LP#1552778: copy some date/time utils from OpenSRF
As preparation for subsequent bugfixes, this patch
copies several date/time routines from OpenSRF::Utils
to a new module, OpenILS::Utils::DateTime. Specifically,
the routines copied over are:
* clean_ISO8601() (renaming of the OpenSRF cleanse_ISO8601)
* gmtime_ISO8601()
* interval_to_seconds()
* seconds_to_interval()
This move will allow us to fix bugs in this core routines
without requiring a mandatory OpenSRF upgrade. Furthermore,
with the exception of interval_to_seconds() (and in only one
place), none of those routines are used by OpenSRF itself.
To test
-------
[1] Apply the patch.
[2] Verify that unit tests pass.
[3] Verify that all Perl services start correctly.
[4] Verify that date/time and interval calculations continue
to work as expected, particularly in circulation.
In our effort to consistently call items/copies items, we accidentally replaced
the action "Copy Current Row" with "Item Current Row." This branch restores
the correct language.
Signed-off-by: Kathy Lussier <klussier@masslnc.org> Signed-off-by: Jason Stephenson <jason@sigio.com>
For some reason, parts were protected during item transfer, but stat cats were
not. This commit protects them by fleshing stat cat entries in the outer
item transfer method.
Signed-off-by: Mike Rylander <mrylander@gmail.com> Signed-off-by: Bill Erickson <berickxx@gmail.com>
Dan Wells [Fri, 21 Sep 2018 14:45:59 +0000 (10:45 -0400)]
LP#1791340 Webstaff: Don't backdate when we're not
There was code in the webstaff checkin interface which attempted to
remove the backdate parameter when it wasn't needed, as its mere
presence has a negative effect on the checkin process. This fail-safe
was not working, however.
Instead, let's build on the same check function used for the display,
so we can be more sure that if the user doesn't see that they are
backdating, the interface will not treat it as a backdate, and
vice-versa.
Signed-off-by: Dan Wells <dbw2@calvin.edu> Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
LP#1745427: account for change in prediction patterns
This patch fixes a bug in the web staff client where changing
the active prediction pattern for a subscription would not
reset the base issue when predicting the next run of issues.
To test
-------
1. Set up a subscription in the web staff client with a prediction
pattern (e.g., monthly). Predict some issues.
2. Create/select a new prediction pattern for a new publishing schedule,
e.g., quarterly.
3. Activate the new pattern and deactivate the old pattern.
4. Click Predict New Issues.
5. Enter in the new publication date/enumerations/chronology as needed.
6. Enter a prediction count and select Save. Note that new issues
appear to be based on the previous pattern.
7. Apply the patch, delete the issues created in step 6, then repeat
steps 4-6. This time, new issues should be created using the new
prediction pattern.
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org> Signed-off-by: Mike Rylander <mrylander@gmail.com>
This commit lightly refactors the badge org logic and includes the ancestors
of location group owners in the list of badge orgs, instead of only the direct
owners.
Signed-off-by: Mike Rylander <mrylander@gmail.com> Signed-off-by: Jeanette Lundgren <jlundgren@cwmars.org> Signed-off-by: Jason Stephenson <jason@sigio.com>
Mike Rylander [Mon, 17 Sep 2018 15:33:29 +0000 (11:33 -0400)]
LP#1781480: Closures remeber values in subtle ways...
... and we must take care to avoid that. This commit forces a state variable
to be statically assigned an empty list rather than depending on the idiomatic
undef to vivicate an empty list. This is important for all OpenSRF methods,
and manifests here as a search "remembering" a previously chosen location
group. A comment to that point is included for our future selves.
The core probably arises from the fact that, in the end, OpenSRF methods are
generated closures.
Signed-off-by: Mike Rylander <mrylander@gmail.com> Signed-off-by: Jeanette Lundgren <jlundgren@cwmars.org> Signed-off-by: Jason Stephenson <jason@sigio.com>
Mike Rylander [Mon, 9 Jul 2018 20:31:50 +0000 (16:31 -0400)]
LP#1732761: Fetch locations immediately for display
This commit closes a race condition where location labels cannot be rendered
for the "multiple locations" widget because fetching them takes longer than
the initial render of the attribute editor.
Signed-off-by: Mike Rylander <mrylander@gmail.com> Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Mike Rylander [Tue, 3 Jul 2018 20:57:27 +0000 (16:57 -0400)]
LP#1732761: Batch item edit and multiple values per field
Previous to this commit, the display of multiple different values for a field
in the item attribute editor was simply to display no value. Here we add a UI
component that presents the list of unique values, the number of selected
copies that use each value, and the ability to select just those copies using
a particular value by clicking on the desired value.
Jason Boyer [Thu, 13 Sep 2018 11:39:06 +0000 (07:39 -0400)]
LP1792371: Fix De-select Whole Page Action
When using the checkbox to select or de-select the
entire page of results, the de-select action changes
the check and highlight states of the items on page
but doesn't actually remove the records from the
basket. This branch corrects that so that you can
select and de-select the entire page of results
and your basket contents are what you would expect.