Change "Circulation Modifer" to "Circulation Modifier" in two files.
This commit only addresses the obvious typos. I leave the Circ
Modifier versus Circulation Modifier debate as an open question. One
of my concerns is changing them all to one string may require some
reorganization of interfaces to avoid clunkiness.
Signed-off-by: Jason Stephenson <jason@sigio.com> Signed-off-by: Ben Shum <ben@evergreener.net>
Jane Sandberg [Mon, 10 Sep 2018 16:23:29 +0000 (09:23 -0700)]
LP1665052: Fix checkin workstation display on recent circs view
To test:
1) Go to Item Status > Detail View > Recent Circ History for
an item that is currently checked out.
2) Note that the Checkin Workstation field says
"{{circ.checkin_workstation.name()}}"
3) Apply this commit.
4) Note that the Checkin Workstation field is empty if an
item is an item hasn't been checked in, but is filled with
the appropriate workstation name after it has been checked
in.
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu> Signed-off-by: Ben Shum <ben@evergreener.net>
Apply the edi_message.account value when sending EDI order messages via
edi_order_pusher.pl. This solves a problem where EDI ORDERS message
were not visible in the interface, because there was no way to complete
the permission check.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
Jane Sandberg [Sun, 3 Jun 2018 22:50:40 +0000 (15:50 -0700)]
LP1010635: Make bre dates populate in Item Status grid
To test:
1) Enable the Date Record Created and Date Record Last Edited columns
in Item Status.
2) Scan an item barcode into Item Status. Note that the two columns
you enabled are empty.
3) Apply this commit.
4) Reload the Item Status screen, and scan your barcode again. The
dates should now be populated.
Add support for approving pending patron addresses in the webstaff
patron edit interface.
To test:
[1] Enable the pending address org unit setting.
[2] Log into the catalog and "edit" an address.
[3] Edit same user in staff client and use the Approve action.
Dan Scott [Sun, 3 Jun 2018 18:34:04 +0000 (14:34 -0400)]
LP#1774886 Distinguish Phys Char Wizard with an edit icon
As both authority fields and the Physical Characteristics Wizard for 007 use
the same glyphicons-link class, it's not obvious to new users of the MARC
editor that the icons result in radically different actions.
Change the 007 icon to glyphicons-edit to reflect that it opens an editor
interface.
Signed-off-by: Dan Scott <dscott@laurentian.ca> Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu> Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
LP#1791184: ensure that 'make clean' doesn't delete pingest.pl
This patch corrects an issue where pingest.pl was treated as if
it were generated from a pingest.pl.in source file during the configure
step, meaning that it got deleted by 'make clean'. This patch also
adds a couple helpful comments.
To test
-------
[1] Apply the patch.
[2] From a git checkout, run the configure and make steps, followed
by a 'make clean'. Verify that pingest.pl is not deleted from
the source tree.
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org> Signed-off-by: Jason Stephenson <jason@sigio.com>
This patch discourages use of the legacy XUL staff client
by adjusting the installation process so that a versioned XUL
server directory is not created. Instead, by default XUL
server files (which is still needed by a few web staff client
interfaces) end up in /openils/var/web/xul/legacy. During installation
and upgrade, the /openils/var/web/xul/server symbolic link is
set to point to /openils/var/web/xul/legacy/server if possible.
If for some reason a given installation of Evergreen 3.2.x does not
wish to stop using the XUL staff client, STAFF_CLIENT_STAMP_ID
can still be provided during the 'make install' step, and the
make_release script can still create the XUL client installers
if given the -x switch.
Note, however, that use of the XUL staff client in 3.2.x is
NOT RECOMMENDED and no longer under any guarantee of community
support.
To test
-------
[1] Perform a fresh installation and verify that /openils/var/web/xul/legacy
is created and that /openils/var/web/xul/server is a symlink
pointing to /openils/var/web/xul/legacy/server.
[2] Verify that the web staff client works and that the
user permissions editor in particular continues to work.
[3] Perform an upgrade; verify that /openils/var/web/xul/legacy exists
and that if /openils/var/web/xul/server started out as a symlink,
it has been repointed.
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org> Signed-off-by: Bill Erickson <berickxx@gmail.com>
LP#1775466: tweak how make_release prunes eg2/node_modules
Need the -f since some stuff under eg2/node_modules/.cache
ends up as 0444 for some reason, meaning that 'rm -r' doesn't
remove those files and complains about it.
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org> Signed-off-by: Bill Erickson <berickxx@gmail.com>
Bill Erickson [Wed, 5 Sep 2018 20:04:19 +0000 (16:04 -0400)]
LP#1775466 AngularJS updates for Angular integration
Changes include:
* Navbar links to Angular acquisitions admin page.
* Auth cookie migration tool for moving AngularJS cookies from /eg/staff
to /.
* Store last printed receipt (etc) in its final compiled form so it can
be directly reprinted without having to recompile (via AngularJS).
This allows the reprint-last action to work in the Angular app.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Acq requests test now logs in with a workstation since under the covers
vandelay (used for acq imports) requires a workstation on the new
tracker tables.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Ben Shum <ben@evergreener.net>
Bill Erickson [Tue, 12 Jun 2018 16:02:02 +0000 (12:02 -0400)]
LP#1755258 Browser client auth proxy login support
Check if the auth_proxy service is enabled during login and use the
proxy login API when it's available, otherwise fall back to standard
Evergreen open-ils.auth login.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
LP#1781235: fix changing primary user barcode in web client
This patch fixes a bug where the patron card dialog would
not allow the user to change the primary barcode under certain
circumstances. The fix is to ensure that the radio buttons
controlling the selection of the primary card are bound to
exactly one scope variable; otherwise, the /last/ barcode in the
list that had a primary value set after user interaction would
be the winner.
To test
-------
[1] Use the 'replace barcode' feature in the patron editor to
create a test patron with 3 barcodes:
- barcode A
- barcode B
- barcode C (which as last created, would be primary)
[2] Attempt to make barcode A the primary barcode again using
the 'See All' patron card dialog in the patron editor.
[3] Note that the change of primary barcode doesn't stick
upon saving the patron record.
[4] Apply the patch and repeat steps 1-3. This time, the
primary barcode should be changed as expected.
[5] Verify that other patron edit actions and registering a
new patron record continue to work as expected.
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org> Signed-off-by: John Amundson <jamundson@cwmars.org> Signed-off-by: Jason Stephenson <jason@sigio.com>
Jeff Davis [Wed, 29 Aug 2018 18:51:24 +0000 (11:51 -0700)]
LP#1781641: make staff-applied patron blocks overridable on web client checkout/renew
To test
-------
[1] Apply a blocking penalty such as STAFF_CHR to a patron record.
[2] Attempt to check out an item; note that there is no option to
force the action.
[3] Apply the patch and repeat #2. This time, the staff user
should be given an option to force the action.
[4] Verify that forcing the checkout respects whether or not
the operator has (e.g.) the STAFF_CHR.override permission.
Signed-off-by: Jeff Davis <jdavis@sitka.bclibraries.ca> Signed-off-by: Joan Kranich <jkranich@cwmars.org> Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Adds support for searching on 'date is NULL' in the ACQ unified search
interface. To use, chose the 'is' or 'is not' matcher and leave the
text input value empty.
Update the canned completed invoices search to filter on 'close_date IS
NOT NULL' instead of the now-removed 'complete' field.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Kathy Lussier <klussier@masslnc.org>
This allows egGrid to receive CSS selector strings via egGridField
declarations in templates, or else auto-generates them based on the
path of the field. Also, sets the DOM id of the grid to its declared
persistKey, unless an id is explicitly given.
For example, due dates could be displayed in purple
as follows by adding the following CSS:
grid-due_date {
color: purple;
}
The above example uses the autog-enerated class name. One could also
set an explicit one in the eg-grid-field element, e.g.,
In this case, the grid-due_date class would /not/ be generated, and the
developer would be expected to supply CSS for the purple class. (But
with semantic class names :) )
Signed-off by: Cesar Velez <cesar.velez@equinoxinitiative.org> Signed-off-by: Mike Rylander <mrylander@gmail.com> Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org> Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Jason Etheridge [Mon, 12 Mar 2018 22:02:47 +0000 (18:02 -0400)]
lp1774277 Improvements to Patron Acquisition Request
Squashed and rebased against master, this is an Angular reimplementation of the
Patron Acquisition Request user interface with some improvements. It still
reaches into the Dojo-based Acquisition interfaces.
Signed-off-by: Jason Etheridge <jason@EquinoxInitiative.org>
toward acq requests
Signed-off-by: Jason Etheridge <jason@EquinoxInitiative.org>
4-status-not-updating-to-recieved-unless-all-items-in-order-are-recieved
Change to acq patron request status logic, which now looks like this:
If a cancel_reason is set on the patron request, then status = "Canceled"
If there is an associated hold request that has fulfillment_time set,
then status = 'Fulfilled"
If there is an associated lineitem has a state of "received", then status =
"Received"
If there is an associated purchase order with a state of "on-order" and an
associated hold request, then status = "Ordered, Hold Placed"
If there is an associated purchase order with a state of "on-order" but no
associated hold request (created through the automated process), then status =
"Ordered, Hold Not Placed"
If there is an associated lineitem (selection list), then status = "Pending"
If there is no associated lineitem, then status = "New"
Any other condition, which should be impossible (I should never say that), will
give a status of "Error"
Signed-off-by: Jason Etheridge <jason@EquinoxInitiative.org>
6-upc-not-on-patron-request-form
Adds a UPC column to the patron acq request table
Signed-off-by: Jason Etheridge <jason@EquinoxInitiative.org>
2-hold-request-fields-that-make-use-of-user-preferences
For new requests (or edited requests when a user barcode is scanned), the user's
preferences (if any) for hold notifications and pickup library will be used to
set various fields in the request dialog.
Signed-off-by: Jason Etheridge <jason@EquinoxInitiative.org>
5-pick-up-library-not-defaulting-to-patrons-home-library
when creating new requests, given a user, default to the user's pickup library
preference setting, or absent a preference, default to their home library.
Absent a user, default to the pickup library selector value from the request
list, if it's of an org type that can have volumes. Otherwise, default to the
workstation library. Technically, the without-a-user behavior is going to be
mooted whenever a user is chosen.
Signed-off-by: Jason Etheridge <jason@EquinoxInitiative.org>
5-pick-up-library-not-defaulting-to-patrons-home-library
Fix defaulting to patron home library in absense of user setting when creating
acq patron request from user context
Signed-off-by: Jason Etheridge <jason@EquinoxInitiative.org>
misc fixes
to the IDL and for the email_notify checkbox.
some refactoring to avoid using foreign fields in the request object
Signed-off-by: Jason Etheridge <jason@EquinoxInitiative.org>
7-retrieve-patron-fails-to-load-patron-record
give the user_request.view permission some parity with VIEW_USER
And some defensive programming if trying to create a request in
the user already known context without adequate permission
Signed-off-by: Jason Etheridge <jason@EquinoxInitiative.org>
handle undefined values for email/hold checkboxes
Signed-off-by: Jason Etheridge <jason@EquinoxInitiative.org>
remove acq.holds.allow_holds_from_purchase_request
This was added a long time ago but never actually used by the code.
Signed-off-by: Jason Etheridge <jason@EquinoxInitiative.org>
match pcrud perm for aur with aurs
Signed-off-by: Jason Etheridge <jason@EquinoxInitiative.org>
live_t/ test
Signed-off-by: Jason Etheridge <jason@EquinoxInitiative.org> Signed-off-by: Bill Erickson <berickxx@gmail.com>
Adds a new DB table vandelay.session_tracker for monitoring progress on
Vandelay enqueue and import sessions.
Enqueue and import APIs get a new option to exit early, returning the
newly created tracker object, so the caller can monitor the tracker
instead of listening to streamed responses, which are not supported in
browser client Dojo interfaces.
Teach the existing Dojo Vandelay UI to exit early on enqueu & export and
to poll for tracker data in lieu of waiting for streamed progress data.
On user merge / purge, trackers are migrated to the destination user.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
"Last Copy Inventory" can be misunderstood at first reading as
inventory of the "last copy". "Latest Inventory" seems easier to
understand, and also still goes well with a potential future "All
Inventories" entry in the IDL.
Signed-off-by: Dan Wells <dbw2@calvin.edu> Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Dan Wells [Thu, 23 Aug 2018 18:34:57 +0000 (14:34 -0400)]
LP#1777675 Re-add missing columns to checkin interface
During one iteration of the inventory code, a box was added to the
interface, and some room was made for it by shrinking these other
interface components.
Since the box is now gone, let's get this row back up to the expected
twelve units of width.
Signed-off-by: Dan Wells <dbw2@calvin.edu> Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Testing revealed that the grid rows use a different data structure, and
the object member names include dots (periods). Thus, bracket notation
is required to access those members.
This commit also makes a few smaller changes:
- Prevents an error in the Check-in app when a last_copy_inventory
doesn't exist yet.
- Removes the "refresh" parameter from the updateInventory() function,
which is never supplied when called, nor used by the function.
- Adds some brief code comments.
- Add toggle for updating inventory date and workstation on checkin
- Create new table asset.last_copy_inventory containing inventory date and inventory workstation columns.
- Add code to do_checkin subroutine to update last_copy_inventory table on checkin.
- Update Holdings view, Checkins table, copy buckets, and item detail grid and lists to display new
inventory date and workstation information.
- Add Update Inventory action to Item Status detail and list views.
Kathy Lussier [Wed, 29 Aug 2018 21:00:39 +0000 (17:00 -0400)]
LP#1712854: Add wide_hold grid settings to server storage
Adds the new wide_hold grid settings used in the holds shelf and record holds
interfaces to server storage, as is done with other grid settings. Also removes
the legacy eg.grid.circ.holds.shelf and eg.grid.cat.catalog.holds settings.
Signed-off-by: Kathy Lussier <klussier@masslnc.org> Signed-off-by: Bill Erickson <berickxx@gmail.com>
Mike Rylander [Tue, 28 Aug 2018 16:23:50 +0000 (12:23 -0400)]
LP#1712854: Make use of local cache when moving to All Holds list
Clearing holds takes care of local updates to the hold data, so there is no
need to refetch the hold list when moving from Clearable to All. Actions
that change hold state otherwise do cause a refetch, however.
Signed-off-by: Mike Rylander <mrylander@gmail.com> Signed-off-by: Kathy Lussier <klussier@masslnc.org> Signed-off-by: Bill Erickson <berickxx@gmail.com>
Mike Rylander [Thu, 19 Jul 2018 00:52:25 +0000 (20:52 -0400)]
LP#1712854: Speed improvements for two hold interfaces
The Hold Shelf and Record -> View Holds interfaces are painfully slow when
faced with a large set of holds. The main reason is the 2-stage process used
to gather the data: 1) find hold IDs for the context 2) for each hold, fetch
all the requisite data using a relatively slow API.
Here we create a new API that provides a streaming response of pre-inflated
hold data. The full result set is loaded immediately, and once loaded, the
grid makes use of the "clientsort" feature to provide fast sorting without
the need to go back to the server when only changing the sort columns and
direction, and when paging through results. The Hold Shelf UI now has a
progress indicator that appears whenever the hold list is retrieved from the
server, and the progress indicator for the Record -> View Holds UI is enhanced
to provide more granular updates.
It is expected that other hold interfaces will be able to make use of this new
API for performance and functionality improvements.
NOTE: This includes an additional change required to protect localStorage from
overlarge values when attempting to save the "last printed value" for future
reprinting. Previously, when attempting to print a 2000+ hold list,
localStorage throws an error and the print fails. Now the print will succeed,
but the value is not stored for reprinting and a message is logged to the JS
console.
NOTE: The original development plan was base this a new API on a native
Postgres materialized view, and provide a LISTEN/NOTIFY daemon to monitor for
events that should trigger a refresh of that view. As it happens, the use of
other new Postgres features (primarily the LATERAL join type) allows us to
avoid that maintenance and run-time complication.
Signed-off-by: Mike Rylander <mrylander@gmail.com> Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Conflicts:
Open-ILS/web/js/ui/default/staff/services/hatch.js
* Remove hard-coded granularity for auto-renewal notification event
generation
* Moved schema update changes from 950 seed file into schema files.
* Added CircIsOpen validator to auto-renewal reactor on the off chance
a circ is renewed by the patron in the middle of event processing.
* Notification template formatting and language updates, and removed
debugging content.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Cesar Velez <cesar.velez@equinoxinitiative.org> Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
This branch adds the necessary changes to allow Evergreen via the
Action/Trigger system to generate daily automatic renewals of
outstanding loans. Implemented as pair of A/T definitions: Autorenew and
AutorenewNotify.
Signed-off by: Cesar Velez <cesar.velez@equinoxinitiative.org> Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Add an icon next to the primary name to indicate the presence of name keywords,
which can be seen via hovering. The name keywords continue to display at the
bottom of the patron summary sidebar.
Also fixes a minor bug where preferred name would display for anyone with
a middle name.
Adds a new set of patron preferred name fields for prefix, first,
middle, last, and suffix allowing patrons to provide preferred name
information. Preferred names are optional and each acts as an overlay
to the analogous primary name field, making it possible to provide
preferred name values for individual fields.
For example, a patron named William Erickson may have a preferred first
name (pref_first_given_name) of Bill, in which case the preferred name
would be Bill Erickson. Note a preferred last name is not required in
this case as the code uses primary name values as defaults when not
replaced with a preferred version.
* Patrons will see primary names displayed in the catalog when set.
* Staff will see both primary name and preferred name in the patron
summary side bar.
* Patron searches for any given name field will search both the primary
and preferred name data.
* Preferred name fields are available in Action/Trigger templates and
are present in various patron-focused print templates.
Name Keywords
Adds a new field to store miscellaneous patron name search terms. These
values are only for searching and do not appear in any interfaces, apart
from the patron summary side bar and the patron edit UI.
Included is a new search field in the patron search UI which searches
keyword values and all other name fields. It's essentially a global patron
name keyword search.
Avoid rendering the tooltip in the middle of a section of overflowed
text, since it can lead to tooltips being pushed far to the right.
Render at top left of cell instead.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Michele Morgan <mmorgan@noblenet.org> Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Display a tooltip (popover), containing the full grid contents, when
mousing over a grid cell. This allows users to see the full contents of
a cell without having to resize the grid column.
This applies to text contents and pre-compiled HTML contents.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Michele Morgan <mmorgan@noblenet.org> Signed-off-by: Kathy Lussier <klussier@masslnc.org>