When a patron has no mailing address linked, attempt to read address
data from the patron's billing address. Similarly, if all address
fields are properly set by the API caller, except the country, and the
patron has no addresses, attempt to determine the country from org unit
settings.
If insufficient address data is provided or divined, return an invalid
params Event (similar to other CC failures).
To test:
[1] Create a patron record that has no mailing address but does
have a billing address. Perform or simulate a credit card
payment; it shoudl fail with an internal error.
[2] Apply the patch and repeat step 1; this time, the payment
attempt should succeed and use the billing address.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Kathy Lussier [Tue, 15 Dec 2015 13:39:27 +0000 (08:39 -0500)]
LP#1522604: Remove red alert style for non-cataloged checkouts
The non-cataloged checkouts in the patron summary had a red alert style
applied when there was a lost item count on the patron record. This branch
removes any alert styling since we don't need to highlight non-cataloged
checkouts.
Test plan:
Pre-patch, retrieve a patron record with lost transactions in the web client.
The non-cataloged count in the patron summary will be red. Apply the patch.
The count will no longer be red.
Josh Stompro [Mon, 9 Nov 2015 02:51:04 +0000 (20:51 -0600)]
LP#1240657 - Creating and Deleting Closed Dates permissions wrong.
The code referenced two permissions that didn't exist
CREATE_CLOSEING and DELETE_CLOSEING. Should be CREATE_ORG_UNIT_CLOSING,
and DELETE_ORG_UNIT_CLOSING.
[RM note: the affected methods don't appear to be in use, however]
Kathy Lussier [Sat, 14 Feb 2015 19:10:54 +0000 (14:10 -0500)]
lp1422802: Improve visibility of parts on Place Holds screen
Users often miss the list of parts on the Place Holds screen, leading to
many title-level holds on records where only one or two libraries have
'unparted' copies. This branch adds some styling to add padding around the
parts selector and to bold the Select a Part text. Many thanks to Christine
Morgan whose custom work at NOBLE served as an inspiration for this styling.
The branch also adds a new config.tt2 option to display parts with
radio buttons instead of a select menu so that all of the parts will display on
the screen. With this option, no parts are pre-selected, forcing the users to
actively choose a part.
Signed-off-by: Kathy Lussier <klussier@masslnc.org> Signed-off-by: Ben Shum <ben@evergreener.net>
Dan Wells [Fri, 14 Dec 2012 18:39:21 +0000 (13:39 -0500)]
LP#1526547 Prevent bogus notes when adjusting lost/lod overdues
If you void/adjust an overdue, but don't supply a reason, the code
automatically adds "VOIDED FOR BACKDATE" to the billing note. This is
obviously wrong for overdues adjusted or voided due to lost (or long
overdue) processing.
This commit simply adds a more appropriate note.
Signed-off-by: Dan Wells <dbw2@calvin.edu> Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Galen Charlton [Fri, 20 Nov 2015 21:26:05 +0000 (21:26 +0000)]
LP#1516867: set limit on when HTML report output sorting
To avoid taking an excessive amount of time to render an
HTML report or sort its values, dynamic sorting is enabled
only when there are at most 10,000 rows of output.
Signed-off-by: Galen Charlton <gmc@esilibrary.com> Signed-off-by: Ben Shum <ben@evergreener.net>
Using the sortable JavaScript library from https://github.com/hubspot/sortable
(MIT license), we can make HTML reports much more usable by making them
sortable by clicking on the column headers. This should save some downloading
of CSV or Excel versions of the reports.
To test:
[1] Create or use a report template and generate an HTML report; ensure
that the report has at most 10,000 rows of output.
[2] View the report output and click on one of the column headings;
verify that the table sorts itself by that column's values.
Signed-off-by: Dan Scott <dscott@laurentian.ca> Signed-off-by: Galen Charlton <gmc@esilibrary.com> Signed-off-by: Ben Shum <ben@evergreener.net>
Galen Charlton [Tue, 26 Jan 2016 22:34:03 +0000 (17:34 -0500)]
webstaff: tweak setting default classification scheme in volcopy editor
With this patch, the volume/copy editor creation default for
classification scheme now can have a value of "Use Library Setting".
If this is in effect, the default classification scheme for new
volumes is taken from the library setting.
Galen Charlton [Tue, 26 Jan 2016 18:06:14 +0000 (13:06 -0500)]
webstaff: save copy templates now unconditional
The save copy templates button in the volume/copy editor
no longer requires that a working template be active; this
way, users can save the set of templates after an import
without having to select one of them first.
specifies a button that, when click, allows the user to save
the contents of the scope variable foo. The dialog that
appears will use "example.json" as the default filename.
This also adds a new dependency, the MIT-licensed
angular-file-saver service written by Philipp Alferov:
Galen Charlton [Thu, 29 Oct 2015 23:24:35 +0000 (23:24 +0000)]
webstaff: tweak how element IDs in MARC editor are generated
For new records (or records that for whatever reason lack
a 901 field), use '0' as a dummy value for the record
ID when constructing element IDs (e.g., r0f5, r0f10sf0value,
etc.). This fixes a problem where setCaret() couldn't
successfully change focus after adding a field or subfield
to a new record.
Galen Charlton [Wed, 21 Oct 2015 17:39:08 +0000 (17:39 +0000)]
LP#1508477: bump up minimum version of angular-hotkeys
Version 1.3.0 of angular-hotkeys is now required, as this
is the version that introduces the ability the specify
that hotkeys can be used even when inputs, selects,
and textareas have focus.
After applying the patch (and doing a bower update,
grunt uglify, and install), one can test hotkeys in
the web staff client by (for example):
- starting from the home page and hitting F1 to
get to patron search by barcode
- hitting F5 to get the item status page
Note that if the page embeds the OPAC or a Dojo
interface using an egEmbedFrame, if any element
of the iframe's content has focus, the hotkeys won't
work -- that will be the subject of another patch.
Galen Charlton [Fri, 16 Oct 2015 22:21:14 +0000 (22:21 +0000)]
webstaff: teach egOrgSelector how to be sticky
In order to make the org unit selector in the holdings view
to be "sticky", the egOrgSelector directive now accepts an
optional stickySetting attribute specifying the name of a
preference key for storing the last selected org unit.
Galen Charlton [Thu, 8 Oct 2015 21:28:53 +0000 (21:28 +0000)]
webstaff: improve MARC record deletion
The MARC editor now asks the user to confirm
whether to delete the record, and in the case of
deleting bibs, now uses open-ils.cat.biblio.record_entry.delete
so as to catch things like volumes still attached
to the bib and cancelling holds in the bib record.
Galen Charlton [Thu, 8 Oct 2015 16:43:42 +0000 (16:43 +0000)]
webstaff: tweak layout of the merge interface
The lead record is now displayed using the same sort
of tabset as the subordinate records. While, of course,
there can be only one lead record at a time, doing it
this way gives us two things:
[1] Display of the lead bib's ID
[2] Better vertical alignment of the MARC records
Galen Charlton [Thu, 8 Oct 2015 16:16:01 +0000 (16:16 +0000)]
webstaff: automatically advance focus in MARC editor
Upon completing a tag, indicator, or subfield code
input, focus will now automatically advance to the next
input, allowing users to enter records with less need
to use the tab button.
Adds a new scrollable-menu CSS class. It's (provisionally?) limited to
larger screens, w/ the assumption that smaller screens handle scrolling
for you.
New class is applied to org unit selects only so far.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Conflicts:
Open-ILS/src/templates/staff/css/style.css.tt2
Galen Charlton [Thu, 8 Oct 2015 01:05:48 +0000 (01:05 +0000)]
webstaff: start teaching egHatch about sessionStorage
This patch adds getSessionItem(), setSessionItem(), and
removeSessionItem(), which are all wrappers around
$window.sessionStorage. This is done to support settings
whose values are sticky for the duration of a session,
which at present is the lifetime of the browser tab.
An alternative would be using session cookies; some user
testing is needed to see which lifetime makes the most
sense.