Galen Charlton [Wed, 16 Nov 2016 02:36:15 +0000 (21:36 -0500)]
webstaff: add import and export of print templates
The workstation print template page now has Import
and Export buttons to import or export any customized
templates from/to JSON files. Toasts are emitted
on import success or failure and export failure (if
there are no customized templates to export).
Galen Charlton [Wed, 16 Nov 2016 02:20:24 +0000 (21:20 -0500)]
webstaff: teach egJsonExporter about generators
This patch adds an attribute called 'generator' to the eg-json-exporter
directive as an alternative to using 'container' to pass a JavaScript
object. 'generator' should be a function that returns a promise with
the data to be exported.
Jason Etheridge [Thu, 17 Nov 2016 20:38:17 +0000 (15:38 -0500)]
add Print Bills to Bill History
FIXME: duplicated a code chunk, should probably refactor into a shared printBills
FIXME: disable actions or make otherwise obvious that they only work on selected rows
Signed-off-by: Jason Etheridge <jason@esilibrary.com>
Galen Charlton [Tue, 15 Nov 2016 20:40:39 +0000 (15:40 -0500)]
webstaff: tweaks to egPrint
This patch attempts to unbreak receipt and CSV printing
by fetching and injecting the print CSS into a style element,
as a link element in the print div doesn't seem to get
processed. It also automatically clears the content
of the print div so that after you print a receipt, the
browser print command will print the page, not the receipt.
Add a specialization of the volume/copy editor that is restricted
just to managing volume/copy templates; this can be accessed
at the path /eg/staff/cat/volcopy/edit_templates. A link is added
to the local administration splash page with the label "Volume/Copy
Template Editor"
In attempt to improve terminology, on the local administration page,
the previous "Copy Template Editor" is now called "Serial Copy Template
Editor".
Jason Etheridge [Fri, 4 Nov 2016 14:18:25 +0000 (10:18 -0400)]
webstaff: CSS tweak for chrome/webkit
Specifically, in the Copy Location Group interface, make sure the disabled org
selector in the New location group dialog is visible within Chrome.
This also happened with Custom Org Unit Trees, and if we run across it again,
I'll put more effort into injecting this more globally for the embedded Dojo
interfaces.
Signed-off-by: Jason Etheridge <jason@esilibrary.com>
Galen Charlton [Tue, 25 Oct 2016 21:23:13 +0000 (17:23 -0400)]
webstaff: implement patron merge interface
This patch adds a 'Merge Patrons' button to the patron
search grid. If the user selects two patron records, the
button can be clicked to present a dialog that allows
the user to pick a lead record and confirm a merge of the
patrons.
This patch also adds an egPatronSummary directive that
uses the existing patron summary template with a couple
modifications.
Galen Charlton [Thu, 20 Oct 2016 17:08:58 +0000 (13:08 -0400)]
changes to transit list interface
* convert barcode column to hyperlink to item status
page (and remove the 'Item Status' action; note that
default double-click action remains going to the
item status page)
* convert title column to hyperlink to record details page
* add 'Add Items to Bucket' button
* add 'Edit Item Attributes' button
Jason Etheridge [Tue, 18 Oct 2016 17:48:50 +0000 (13:48 -0400)]
webstaff: Acquisitions Administration
FIXME:
* Acq Admin -> Distribution Formulas -> Formula Detail Page : render problem, no uncaught exceptions
* Acq Admin -> Funds : TypeError: openils.XUL.localStorage is not a function
Signed-off-by: Jason Etheridge <jason@esilibrary.com>
Galen Charlton [Mon, 17 Oct 2016 22:20:04 +0000 (18:20 -0400)]
webstaff: tweaks to transit list
- filter out transits that have been received, thus matching
previous XUL functionality
- remove the Receive Date/Time column, as it is superfluous
- display the time component of the Send Date/Time
Because AngularJS has no way of adding HTTP request headers to
user interactions with the contents of an iframe, the search
library and preferred library are passed to TPAC via two new
session cookies, eg_pref_lib and eg_search_lib.
Hide the workstation selector when no workstations are registered.
After successful login, direct the user to the new workstation admin
page to create a new workstation.
After successful login with an invalid workstation, direct the user
to the workstation admin page, issuing a 'remove' command to un-register
the offending WS. On the WS admin page, the user can create a new
workstation or select from their existing workstations.
Any attempt to access a browser client interface (minus the WS admin
page) without a valid workstation will cause the page to redirect to
the workstation admin page.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Mike Rylander <mrylander@gmail.com>
This patch ensures that the patron profile and
search OU values are retained when going from a patron
search to a single record and back to the patron search.
To test the fix for this bug:
[1] Search for a patron using the expanded patron search fields,
making sure to select values for the profile and search
OU dropdowns.
[2] Open a record, then click "Patron Search" to return to the
search form.
[3] Verify that the profile and search library are set and
that the same patron records are retrieved.
This patch includes elements from a patch originally written
by Victoria Lewis <vlewis@catalystitservices.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com> Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Propagate lineitem MARC 'price' attribute value to the lineitem
estimated_unit_price field. This allows users to apply a lineitem
price directly from the ACQ Brief Record interface.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Chris Sharp <csharp@georgialibraries.org> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Dan Scott [Tue, 6 Sep 2016 01:34:20 +0000 (21:34 -0400)]
SIP manual testing formatting cleanup
The extra ** in the sample SIP lines was distracting. Also, it wasn't clear
which password to use when $password was used twice, so disambiguate it to
identify user vs. SIP password.
Fix webstaff test failures due to an invalid IDL2js.js file by adding
newly-required preprocessing to the support script that generates that
file when running tests.
Signed-off-by: Jeff Godin <jgodin@tadl.org> Signed-off-by: Ben Shum <ben@evergreener.net> Signed-off-by: Dan Wells <dbw2@calvin.edu>
Dan Wells [Thu, 25 Aug 2016 19:27:56 +0000 (15:27 -0400)]
Translation updates - po files
Translations have been significantly increased. In particular, Spanish
has received a huge update with over 8,000 new translations, Czech has
received a sizeable update of over 800 translations, and additional
smaller updates have been added for Arabic, French (Canada), and
Armenian.
Jason Stephenson [Thu, 25 Aug 2016 15:57:42 +0000 (11:57 -0400)]
LP#1613709: Make DOB validation alert failure translatable.
The alert message about an invalid DOB being entered in the OPAC
patron registration is not translatable. The solution, suggested by
Eva Cerninakova, is to wrap the string in the l() template function to
make it so. That is what this branch does.
Signed-off-by: Jason Stephenson <jason@sigio.com> Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Jason Stephenson [Mon, 30 May 2016 17:01:45 +0000 (13:01 -0400)]
LP 1583608: The make_release script always makes a db upgrade script.
Alter make_release to always create a db upgrade script, even when no
actual db upgrades need to be applied. The minimal script created
will at least set the upgrade version in config.upgrade_log.
Bill Erickson [Wed, 24 Aug 2016 21:01:01 +0000 (17:01 -0400)]
LP#1497335 Show Last Few Circs patron retrieve options
In the Show Last Few Circulations window (XUL), disable the "Retrieve
Last Patron" button when the most recent circulation is aged. Disable
the "Retrieve All These Patrons" button when all circulations displayed
are aged.
Fixes a sort bug in open-ils.circ.copy_checkout_history.retrieve.
* Item Status -> Circulation History now displays aged circulations as
appropriate, showing "<Aged Circulation>" in lieu the patron's name.
* Item Status (and others) -> Show Last Few Circulations, ditto above.
Also, the 'Add Billing' button is disabled when displayed with an aged
circulation row.
* Copy -> Retrieve Last Patron action now includes aged circulations
when looking for the most recent circulation. When the most recent
circ is an aged circ, the UI reports "Item XXX circulation is an aged
circulation and has no linked user". Among other things, this means
the 3rd from last circ will not be confused as the 2nd to last circ
when the 2nd to last is aged.
* Mark Item Damaged will warn if the circ in question is aged. This is
just a sanity check and should never happen in reality, since the UI
only supports this option on checked out items (i.e. active circs).
1. Use all_circulation (combcirc) class (now accessible via pcrud) to
render the item Circ History List tab. In cases where a combcirc object
has no 'usr' value, the interface displays <Aged Circulation> where
the patron's name would normally be and disables the 'Add Billing'
button.
2. Handle null 'usr' values in the item status Recent Circ History tab.
When a renewal chain summary has no 'usr' value, the interface displays
<Aged Circulation> where the patron's name would normally be.
Various SQL, IDL, and API changes for accessing aged circulations,
primarily via all_circulation objects, for imporoved staff client
integration.
*. Support open-ils.pcrud access to the action.all_circulation DB view /
'combcirc' class.
*. Add missing parent_circ, checkin_scan_time, checkin_workstation to
combcirc class.
*. Add 'usr' field to combcirc. The action.all_circulation VIEW will
return NULL as the 'usr' column value when returning data for an
aged_circulation.
*. Add virtual 'active_circ' and 'aged_circ' fields to combcirc for
fleshing the related action.circulation or action.aged_circulation
object.
* Adds SQL functions for action.all_circ_chain and
action.summarize_all_circ_chain, which pull data from
aged_circulation.
*. API calls
open-ils.circ.[prev_]renewal_chain.retrieve_by_circ[.summary] now return
data for active and aged circulations by using action.all_circ_chain and
action.summarize_all_circ_chain. When using these APIs, a null value
in the 'usr' column is the indication that a given circulation or circ
chain summary represents an aged circulation.
* API open-ils.circ.copy_details.retrieve will now optionally return
aged circ data within the copy circ history.
Chris Sharp [Wed, 24 Aug 2016 18:23:09 +0000 (14:23 -0400)]
LP#1613374 - Check stored copy status before clobbering it.
Some transit.copy_statuses would result in some other behavior
upon checkin, so we check all that would go into 'Reshelving'
status, otherwise, restore the stored status.
Signed-off-by: Chris Sharp <csharp@georgialibraries.org> Signed-off-by: Michele Morgan <mmorgan@noblenet.org> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Chris Sharp [Tue, 23 Aug 2016 13:32:59 +0000 (09:32 -0400)]
LP#1613374 - Add 'Canceled Transit' to non-'BAD' copy statuses.
During checkin, Circulate.pm checks the copy status and if it
isn't listed as an okay status, the event COPY_BAD_STATUS is
returned, which requires an override. This change makes copies
in 'Canceled Transit' status check in without an alert.
Signed-off-by: Chris Sharp <csharp@georgialibraries.org> Signed-off-by: Michele Morgan <mmorgan@noblenet.org> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Chris Sharp [Tue, 16 Aug 2016 11:11:24 +0000 (07:11 -0400)]
LP#1613374 - Add 'Canceled Transit' to "magical statuses"
Signed-off-by: Chris Sharp <csharp@georgialibraries.org> Signed-off-by: Michele Morgan <mmorgan@noblenet.org> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Chris Sharp [Mon, 22 Aug 2016 12:58:24 +0000 (08:58 -0400)]
LP#1613374 - Make 'Canceled Transit' status holdable and OPAC-visible.
Signed-off-by: Chris Sharp <csharp@georgialibraries.org> Signed-off-by: Michele Morgan <mmorgan@noblenet.org> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Chris Sharp [Wed, 24 Aug 2016 18:12:04 +0000 (14:12 -0400)]
LP#1613374 - Set item status to 'Canceled Transit' when transit is canceled.
I opened a separate bug report on this issue (bug 1613374) before realizing
bug 1306666 was reported. This commit creates a new 'Canceled Transit' status
that signals to staff what happened to an item when a transit is aborted/canceled.
Signed-off-by: Chris Sharp <csharp@georgialibraries.org> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Conflicts:
Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/Transit.pm
Signed-off-by: Michele Morgan <mmorgan@noblenet.org> Signed-off-by: Mike Rylander <mrylander@gmail.com>
This patch replaces the Logout and Logout with Receipt buttons in
the selfcheck interface with a single Logout button and a set of radio
buttons (whose labels are clickable) that allow the user to specify
whether they want an email receipt, a print receipt, or no receipt upon
logging out.
If the user has no email address, the option to select email receipts
will not be presented to them.
Signed-off-by: Mike Rylander <mrylander@gmail.com> Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Galen Charlton [Thu, 4 Aug 2016 16:07:14 +0000 (12:07 -0400)]
LP#1356477: move email receipt checkbox on patron editor
This patch updates the patron editor so that the checkbox
for setting whether the user wishes to get email checkout
receipts by default is moved next to the email address
input.
Signed-off-by: Galen Charlton <gmc@esilibrary.com> Signed-off-by: Mike Rylander <mrylander@gmail.com>
This patch adds a new button to the webstaff checkout page
called Quick Receipt. If the button itself is pushed, a
receipt containing the current checkouts is either printed
or emailed, depending on the user's preference. If the
drop-down portion of the button is used, staff members can
override the user's default preference to print or email
the receipt.
The Quick Receipt button is enabled only if at least one
checkout has been made during the current session.
Note that email receipts is an option only when the patron
has an email address supplied.
An icon next to the Quick Receipt button will be either a
printer or an envelope depending on the user's preferred
receipt setting.
This patch also modifies the "Done" button. If pressed, the session
is ended and the receipt is generated according to the user's
preferences, but the drop-down portion can be used to end
the session while letting the staff member choose how the
receipt is emitted.
If a receipt is emailed, a toast is displayed saying so.
Signed-off-by: Mike Rylander <miker@esilibrary.com> Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Galen Charlton [Wed, 3 Aug 2016 19:38:49 +0000 (15:38 -0400)]
LP#1356477: teach OPAC patron registration form about staged user (opt-in) settings
This patch causes a checkbox to be added for each user setting
that controls opt-in for active Action/Trigger event definitions. In
the specific context of email checkout receipts, this means that
a patron who is self-registering can elect to get email checkout
receipts by default.
Signed-off-by: Galen Charlton <gmc@esilibrary.com> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Galen Charlton [Wed, 3 Aug 2016 19:36:18 +0000 (15:36 -0400)]
LP#1356477: teach webstaff patron editor about staged user settings
This patch also fixes a bug that preferred the webstaff patron editor
from successfully removing a staged patron upon completing the
registration of the patron.
Signed-off-by: Galen Charlton <gmc@esilibrary.com> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Galen Charlton [Wed, 3 Aug 2016 19:37:39 +0000 (15:37 -0400)]
LP#1356477: create new staging table for user settings
This patch creates a new table called staging.setting_stage
that allows for storing user settings when a patron uses
(for example) the self-registration page.
Signed-off-by: Galen Charlton <gmc@esilibrary.com> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Galen Charlton [Mon, 8 Aug 2016 20:50:08 +0000 (16:50 -0400)]
LP#1356477: add ability to unconditionally send email
This patch defines and uses an
open-ils.trigger.event.autocreate.ignore_opt_in method that does what
it says on the tin; the caller is reponsible for not abusing this.
This supports a use case in the webstaff checkout interface where staff
can choose to have the receipt be emailed, provided that the patron
record has an email address defined, even if the user setting to
email receipts by default is not set. (It is assumed that the staff
member would have gotten permission from the patron on the spot.)
Signed-off-by: Galen Charlton <gmc@esilibrary.com> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Mike Rylander [Wed, 3 Aug 2016 16:45:10 +0000 (12:45 -0400)]
LP#1356477: business logic for email checking receipts
This patch adds two methods, open-ils.circ.checkout.batch_notify
and open-ils.circ.checkout.batch_notify.session, that when passed
a set of circulation IDs, creates A/T events for the
checkout notification hooks. In the specific case of the email
checkout receipts feature, the seed data contains a stock
event that would send out emails, but it is conceivable
that other forms of notification could be done by defining
A/T events appropriately.
Signed-off-by: Mike Rylander <miker@esilibrary.com> Signed-off-by: Galen Charlton <gmc@esilibrary.com>
This patch adds seed data for email checkout receipts,
including:
- The action/trigger hooks circ.checkout.batch_notify
and circ.checkout.batch_notify.session.
- The default event definition
- The circ.send_email_checkout_receipts (Email checkout receipts by
default?) user setting.
Signed-off-by: Galen Charlton <gmc@esilibrary.com> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Conflicts:
Open-ILS/src/sql/Pg/950.data.seed-values.sql