Transfer checkout history rows to the destination user during patron
merge.
To Test:
1. Enable circ history tracking for 2 users, ideally 2 with same
last name for easy searching.
2. Check out items to both patrons.
3. Load the 2 patrons in the patron search UI and merge one into the other.
4. action.usr_circ_history rows previously linked to the deleted patron
will now be linked to the active/lead patron.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Jason Etheridge <jason@EquinoxInitiative.org>
Cesar Velez [Fri, 11 Aug 2017 15:00:29 +0000 (16:00 +0100)]
LP#1685929-Adds more XUL parity to Webstaff checkIn
Checkin Grid context actions like Add Items to Bucket, Show Holds on Bib, Show
Last Few Circulations, Edit Item Attributes, Mark Item Missing Pieces,
Print Spine Label, were missing from CheckIn in webstaff.
Jason Boyer [Thu, 24 Aug 2017 21:34:02 +0000 (17:34 -0400)]
LP1712922: Exclude Deleted ACPL in Vol/Copy Editor
Just what it says on the tin. When loading the list of ACPL
in the editor only retrieve the non-deleted locations.
Tester's note: there's no database contraint that strictly
prevents a copy from linking to a deleted location, so for
items like that, the copy location selector will be blank. This
is an uncommon situation, but Evergreen admins can identify
such items by running the following query:
select acp.id, acp.barcode, acpl.name
from asset.copy acp
join asset.copy_location acpl on (acpl.id = acp.location)
where not acp.deleted
and acpl.deleted
order by acp.id;
Signed-off-by: Jason Boyer <jboyer@library.in.gov> Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Michele Morgan [Wed, 9 Aug 2017 15:36:20 +0000 (11:36 -0400)]
LP 1708728 - Fix Stripe penny errors introduced by perl int() function
Fixes the issue where payment amounts sent to Stripe can be one cent less
than the actual Evergreen payment due to use of the perl int() function.
To test
-------
A Stripe account is required to view transactions on the Stripe side.
To enable test payments, Stripe testing API keys need to be entered
in the Evergreen ou settings:
- Add a bill to a patron record with the following amounts: $8.20
- Login to the opac as the patron and pay the bill.
- View the transaction on the Stripe side and see that it is one cent
less than the paid bill in Evergreen.
- Apply the patch.
- Repeat the steps above.
- On the Stripe side, see that the Stripe amount and Evergreen amount
now match.
Signed-off-by: Michele Morgan <mmorgan@noblenet.org> Signed-off-by: Dan Pearl <dpearl@cwmars.org> Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Galen Charlton [Wed, 23 Aug 2017 19:22:28 +0000 (15:22 -0400)]
LP#1708485: (follow-up) improve dest_courier_code support
This patch ensures that dest_courier_code is added to
the printer context; it also displays the courier code (if set)
on the transit modal and mentions dest_courier_code in the
inline documentation for transit and hold slips.
Dan Scott [Tue, 15 Aug 2017 14:19:22 +0000 (10:19 -0400)]
LP#1710747: Absolute URL for media_prefix in templates
If OILSWebMediaPrefix is set in the Apache configuration, then
the ctx.media_prefix TT2 template variable uses that value as the
hostname; otherwise it is null, resulting in many relative URLs for
images, CSS, and JavaScript files.
Normally this is not a problem, but the Open Graph image property
requires a full absolute URL rather than the relative URL that would
previously result on the record summary page in the absence of the
OILSWebMediaPrefix variable having been set in the Apache config.
This patch tweaks the EGWeb handler to fall back to the base hostname in
the absence of the OILSWebMediaPrefix variable, thus ensuring that all
uses of ctx.media_prefix result in an absolute URL.
Test Plan:
Pre-patch - Visit a record summary page in the catalog. View the source of the
page. In the head section, find the og:image meta property. The content will
display a relative URL to the record's book jacket cover image.
Post-patch - When viewing the source of the page, og:image will display the
full URL.
Signed-off-by: Dan Scott <dscott@laurentian.ca> Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Galen Charlton [Wed, 23 Aug 2017 15:54:32 +0000 (11:54 -0400)]
LP#1694577: tweak searching for words in report templates
Use \m to recognize beginning-of-word boundaries; this fixes
an issue where you couldn't use "clone" to retrieve templates
whose name was of the form "foo (clone)".
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org> Signed-off-by: Jason Etheridge <jason@EquinoxInitiative.org>
Adds new API call open-ils.reporter.search.templates allowing search of
reporter template names and/or descriptions. Searching is
case-insensitive, any order, with left-anchored words. Searching can be
for specific folders or all folders visible to the calling user.
Adds paging support (limit / offset) for retriving templates, reports,
and outputs.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org> Signed-off-by: Jason Etheridge <jason@EquinoxInitiative.org>
Dan Scott [Wed, 12 Jul 2017 14:07:23 +0000 (10:07 -0400)]
LP#1703678 Display foreign item location and status
We were using copy_info instead of the foreign item's data to try to display
location and status of foreign items. As copy_info had not been initialized,
it displayed nothing. Use the foreign item data instead for location and
status.
Signed-off-by: Dan Scott <dan@coffeecode.net> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Cesar Velez [Tue, 8 Aug 2017 20:13:15 +0000 (16:13 -0400)]
LP#1624443 - TPAC 500 error after adding duplicate title to Temp List
Credit to gmcharlt, prevents the my list (temporary list) page from
crashing when a user has added a title to the list more than once.
This can happen if they add a title then login, then redo search and
add same title. Per Galen, it looks like an issue with
OpenSRF::MultiSession parallel record retrieval causing some kind of
race condition when there are duplicate entries in the list.
Signed-off by: Cesar Velez <cesar.velez@equinoxinitiative.org> Signed-off-by: Chris Sharp <csharp@georgialibraries.org> Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
[1] In the web staff client, perform a catalog search. From search
results, choose Place Hold.
[2] In the form that displays, click the 'Patron Search' button.
[3] Verify that a modal with a patron search form is displayed.
[4] Search for a patron, then select one and click the 'Select'
button.
[5] Verify that the patron's barcode is inserted into the patron
barcode input.
[6] Verify that submitting the form successfully places the hold.
[7] Verify that the feature works from a bib record details page.
[8] Verify that the Patron Search button does not show up when
using the place hold form in the public catalog.
[9] Verify that normal patron search, retrieval, and registration
functionality continues to work, as this patch series does some
refactoring to create a reusable Angular patron search service
and templates.
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org> Signed-off-by: Chris Sharp <csharp@georgialibraries.org> Signed-off-by: Jason Etheridge <jason@EquinoxInitiative.org>
This patch teaches the web staff client's catalog app how
to activate the patron search button in the embedded catalog's
place hold form. It also adds a handler for the button action
to display a modal to allow the staff member to search
for and select a patron, then injects the patron's barcode
into the form.
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org> Signed-off-by: Chris Sharp <csharp@georgialibraries.org> Signed-off-by: Jason Etheridge <jason@EquinoxInitiative.org>
Galen Charlton [Fri, 26 May 2017 20:41:38 +0000 (20:41 +0000)]
LP#1701001: carve out a reusable patron search service
This patch moves the patron search service and the base
patron search controller into a separate, reusable
file. The core patron search service is available for
injection as patronSvc from the new egPatronSearchMod, while
BasePatronSearchCtrl now exists as a base controller for the
patron search form that can be extended as needed by doing
something like this:
module.controller('DerivedPatronSearchCtrl', [
'$scope', '$controller',
function ($scope, $controller) {
// Initialize the super class and extend it.
angular.extend(this, $controller('BasePatronSearchCtrl', {$scope: $scope}));
...
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org> Signed-off-by: Chris Sharp <csharp@georgialibraries.org> Signed-off-by: Jason Etheridge <jason@EquinoxInitiative.org>
The item service currently living inside the item status app does not know how
to fetch multiple barcodes at once. So, we'll loop over them and refresh the
grid when they're all retrieved.
Signed-off-by: Mike Rylander <mrylander@gmail.com> Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Chris Sharp [Fri, 7 Jul 2017 17:04:35 +0000 (13:04 -0400)]
LP#1702968 - Add missing error string - mark item damaged.
When marking an item damaged for a circulation that has been
archived/aged, the patron receives an error that the string
associated with staff.cat.util.mark_item_damaged.item_no_linked_patron
is not there. This branch adds it.
Signed-off-by: Chris Sharp <csharp@georgialibraries.org> Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
1. Provide an admin-friendly summary of changes at the top of the release notes.
2. Change quoting of optional post-upgrade SQL echoing in the upgrade script.
3. Fix preexisting issue with variable interpolation inside an alert modal.
4. Protect against null or empty date fields when formatting.
Signed-off-by: Mike Rylander <mrylander@gmail.com>
5. Added if (date == 'now') check.
Bill Erickson [Thu, 3 Aug 2017 15:35:31 +0000 (11:35 -0400)]
LP#1705524 Closed dates editor handles no timezones
Fix issue in closed dates editor where it failed creating new closed
dates when an org unit had no value applied for the lib.timezone org
unit setting.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Here we'll use moment.js to format all dates that want to use the angular date
filter, for consistency and standards compliance. The primary benefit is the
ability to use a proper timezone (region) rather than just a simple GMT offset.
Signed-off-by: Mike Rylander <mrylander@gmail.com> Signed-off-by: Bill Erickson <berickxx@gmail.com>
Now that due dates are globally stored in the configured timezone of the
circulating library, the automatic adjustment to day-granular due dates needs
to take those timezones into account.
An optional SQL command is provided by the upgrade script to retroactively
adjust existing due dates after library configuration is complete.
Signed-off-by: Mike Rylander <mrylander@gmail.com> Signed-off-by: Tina Ji <tji@sitka.bclibraries.ca>
Mike Rylander [Wed, 21 Jun 2017 18:03:29 +0000 (14:03 -0400)]
LP#1705524: Honor timezone of the acting library where appropriate
This is a followup to the work done in bug 1485374, where we added the ability
for the client to specify a timezone in which timestamps should be interpreted
in business logic and the database.
Most specifically, this work focuses on circulation due dates and the closed
date editor. Due dates, where displayed using stock templates (including
receipt templates) and used for fine calculation, are now manipulated in the
library's configured timezone. This is controlled by the new 'lib.timezone'
YAOUS, loaded from the server when required. Additionally, closings are
recorded in the library's timezone so that so that due date calculation is more
accurate. The closed date editor is also taught how to display closings in the
closed library's timezone. Closed date entries also explicitly record if they
are a full day closing, or a multi-day closing. This significantly simplifies
the editor, and may be useful in other contexts.
To accomplish this, we use the moment.js library and the moment-timezone addon.
This is necessary because the stock AngularJS date filter does not understand
locale-aware timezone values, which are required to support DST. A simple
mapper translates the differences in format values from AngularJS date to
moment.js.
Of special note are a set of new filters used for formatting timestamps under
certain circumstances. The new egOrgDateInContext, egOrgDate, and egDueDate
filters provide the functionality, and autogrid is enhanced to make use of
these where applicable. egGrid and egGridField are also taught to accept
default and field-specific options for applying date filters. These filters may
be useful in other or related contexts.
The egDueDate filter, used for all existing displays of due date via Angular
code, intentionally interprets timestamps in two different ways WRT timezone,
based on the circulation duration. If the duration is day-granular (that is,
the number of seconds in the duration is divisible by 86,400, or 24 hours worth
of seconds) then the date is interpreted as being in the circulation library's
timezone. If it is an hourly loan (any duration that does not meet the
day-granular criterium) then it is instead displayed in the client's timezone,
just as all other timestamps currently are, because of the work in 1485374.
The OPAC is adjusted to always display the due date in the circulating
library's timezone. Because the OPAC displays only the date portion of the due
date field, this difference is currently considered acceptable. If this proves
to be a problem in the future, a minor adjustment can be made to match the
egDueDate filter logic.
This work, as with 1485374 was funded by SITKA, and we thank them for their
partnership in making this happen!
Signed-off-by: Mike Rylander <mrylander@gmail.com> Signed-off-by: Tina Ji <tji@sitka.bclibraries.ca>
This commit removes the OpenILS::SIP::clean_text utility function and
all references to it in the OpenILS::SIP modules. Its job is now done
in SIPServer's write_msg routine.
Ben Shum [Mon, 17 Apr 2017 21:20:25 +0000 (17:20 -0400)]
LP#1681864: Add pocommentclean for db.seed cleanup prior to updatepo
By adding a segment to run pocommentclean against the db.seed locale file
prior to doing updatepo against the file from the PO template, we clear
any unwanted old and outdated comment IDs prior to applying clean newly
synchronized comment IDs from the PO template.
Signed-off-by: Ben Shum <ben@evergreener.net> Signed-off-by: Chris Sharp <csharp@georgialibraries.org> Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Galen Charlton [Thu, 10 Aug 2017 16:45:58 +0000 (12:45 -0400)]
LP#1709932: recognize more strings from oils_i18n_gettext()
This patch makes db-seed-i18n.py more flexible about
where commas between strings in invocations of oils_i18n_gettext()
can appear, reduces the chances that strings fail to be grabbed
for translation. It also improves the error message shown
when parsing errors occur.
To test
-------
[1] Apply patch and run
cd build/i18n && make sql2pot
[2] Verify that no error messages are produced during
this step.
[3] Inspect the changes to po/db.seed/db.seed.pot and
verify that additional strings are added, including
"Item Print Label Font Family".
[4] (optional) Deliberately remove a comma from an
oils_i18n_gettext invocation in 950.data.seed-values.sql
and run make sql2pot again. The error message shoudl
now include the failing chunk of text.
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org> Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
blake [Thu, 15 Jun 2017 18:39:08 +0000 (13:39 -0500)]
LP1659928 SIP is not respecting standing penalties for charge ok and hold ok
This will include the block_list data in the blessed user object. This allows
charge_ok, renew_ok and hold_ok to determine if any of the respective blocks are
present in any of the applied penalties.
To test
-------
[1] Using a SIP emulator, issue a 63 message to fetch information
about a patron that has nothing preventing it from doing loans,
renewals, or hold requests, e.g.,
[2] Verify that the first six positions of the response are
'64 Y '
[3] Apply a standing penalty that blocks circulation and repeat
step 1. This time, the response should start with '64Y Y '
[4] Apply other standing penalties that block holds or renewals
and repeate step 1, verifying that the various privileges
denied positions in the 64 response have expected values.
[5] Archive all of the penalties used during testing, then
verify that the response returns to '64 Y ...'
Signed-off-by: blake <blake@mobiusconsortium.org> Signed-off-by: Dan Pearl <dpearl@cwmars.org> Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Mike Rylander [Thu, 10 Aug 2017 15:16:13 +0000 (11:16 -0400)]
Stamping populariy parameter upgrade scripts
Also, the org-count parameter function is adjusted to consistently find
and count copies by circ lib. Because this parameter is about counting
copies on the shelves of libraries, this makes more sense than owing
library. Changed in consultation with Kathy Lussier.
Signed-off-by: Mike Rylander <mrylander@gmail.com>
LP#1688099: Popularity parameter for the number of OUs that own a title
Creates a new badge that calculates a score based on a count of libraries
that own a copy of a title. The badge is based on libraries that are the copy's
circulation library. The intent of the badge is to measure the breadth of
ownership within a particular consortium with the hope that it doesn't
generate as many 'false hits' that are seen with the similar Total Copy Counts
badge.
Signed-off-by: Kathy Lussier <klussier@masslnc.org> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Adds a new popularity parameter based on in-house use over time. The parameter
can be used for creating a statistically-generated popularity badge for titles.
Signed-off-by: Mike Rylander <mrylander@gmail.com>
Always check active and aged circs (via "aacs" class) for circs to
display for a given copy in the item status Quick Summary and Recent
Circ History tabs. When a aged circ is encountered, display the '<Aged
Circulation>' tag in lieu of the patron's name.
To test:
[1] Checkout and checkin a copy.
[2] Checkout and checkin the same copy to a different patron
[3] Manually delete the 2nd circulation in the database.
[4] Load the Item Status interface for the copy.
[5] Confirm chekout time, etc. for the 2nd show in the Quick Summary
circulation data.
[6] Confirm the patron displayed under the 'Recent Circ History' tab
shows '<Aged Circulation>'
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Bill Erickson [Thu, 1 Jun 2017 20:11:11 +0000 (16:11 -0400)]
LP#1695007 Webstafff circ group summary display fix
Repair display of the Total Circs, Last Renewed On, and Renewal
Workstation fields in the web staff item summary Recent Circ History tab
Most Recent Circ Group Display.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Adds a new view action.all_circulation_slim which collects all
action.circulation and action.aged_circulation rows into a single set,
without the added joins for copy and patron data imposed by the existing
action.aged_circulation view.
The new leaner view is now used by various other views and APIs in place
of the all_circulation view:
[1] Open a copy in the web staff Item Status / Detail View interface
that has live and aged circulations.
[2] Open the Recent Circ History tab
[3] Confirm relevent fields for both types of circs display as expected
and that the Patron field for the aged circulation shows a value of
<Aged Circulation>
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Michele Morgan [Thu, 29 Sep 2016 20:35:20 +0000 (16:35 -0400)]
LP#1480432: choose broadest depth if staff has same perm multiple times
Fixes a staff user permission depth issue that can exist when multiple
permission groups are assigned. In particular, this patch clarifies
that if a given permission is assigned to a staff member multiple times,
e.g., via mutiple profiles or by individual permission mapping, whatever
permission depth is the broadest will apply.
To test
-------
[1] Run the t/lp1480432_test_func.permissions.usr_perms_depth_sort.pg
pgTAP test.
[2] Set up a staff user that has the same permission at multiple
depths, and verify that its scope of applicability applies
at the broadest depth. For example, if you give SET_CIRC_CLAIMS_RETURNED
at system and consortial depth, verify that the staff user can
mark any loan as claims returned regardless of system.
Signed-off-by: Michele Morgan <mmorgan@noblenet.org> Signed-off-by: Cesar Velez <cesar.velez@equinoxinitiative.org> Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Bill Erickson [Fri, 4 Aug 2017 15:54:15 +0000 (11:54 -0400)]
LP#1463166 Apply funds from view/place orders and search
Activate the copy-specific fund selectors for lineitems accessed from
the View/Place orders and MARC Federated Search interfaces. Prior to
this, fund selectors existed, but could not accept values until after a
PO was created for a given lineitem.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
LP#1463166 Fix Batch update of Funds in Selection Lists
Selection lists are currently unable to batch update funds. The problem
stems from the fact that the Fund selection list is not populated in the
copy rows. New code used to limit the number of funds, in the dropdown
list, to those funds available to the user was added for purchase
orders. However, these changes were not added to Selection Lists. This
code adds the new call to initBatchUpdater to the selection list code.
Cesar Velez [Tue, 23 May 2017 13:58:39 +0000 (09:58 -0400)]
LP#1669534 - OPAC hold request should not default to first SMS carrier
Added empty <option> tag to address this and related form validation issues.
To test
-------
[0] Ensure that SMS messaging is enabled.
[1] Apply the patch and go to the place hold form in the public
catalog. Verify that no mobile carrier is selected.
[2] Set the default SMS carrier and number for the user account
and go back to the place hold form. Verify that the user's
default carrier and number appear in the form.
Signed-off by: Cesar Velez <cesar.velez@equinoxinitiative.org> Signed-off-by: Chris Sharp <csharp@georgialibraries.org> Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org> Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Michele Morgan [Tue, 18 Apr 2017 16:11:01 +0000 (12:11 -0400)]
LP#1075401: adjust two fields in the legacy Serials Copy Template editor
This commit changes the Age Protection and Circ as Type fields to links in
the fm_IDL.xml to allow the template to read the data in the fields. It also
changes the owning_lib reporter type to org_unit so the org unit shortname
is displayed in the grid view, along with fixing the config.floating_group cfg
FM settings so that the name is displayed instead of the ID.
[Note from Galen: the forthcoming web staff serials module's serial
copy template editor already provided drop-downs for those two fields,
but the IDL changes remain beneficial.]
...initial hook
...better stock template for labels, and a | wrap filter
...pull in some Library Settings for Print Labels
...Reset to Default button for templates for both receipt and item print labels
...toward tabs for Print Label interface
...template management for print labels
...bundle the Call Number Template in with saved templates
...manual editing of cn's for print labels
...And affixes in the stock CN template.
...Settings tab for print labels
...add Print Labels action to Copy Buckets
...and some other cosmetic tweaks to the Actions menu
...add Print Labels to Holdings View
...provide MVR's for use with Print Labels
...better than super simple record, but Display Fields will be better yet later on
...new org unit settings for print labels
...and fix to stock call number template for affixes
...and cn_wrap filter for call numbers
...handle null location affixes
...implement Print Item Labels on Save & Exit in vol/copy editor
Signed-off-by: Jason Etheridge <jason@EquinoxInitiative.org> Signed-off-by: Bill Erickson <berickxx@gmail.com>
Dan Scott [Sat, 8 Apr 2017 13:26:42 +0000 (09:26 -0400)]
LP#1681095 Browser cache-busting key for longer expires
Extend the support for cache-busting that we added with autogen's generation of
ctx.eg_cache_hash for core JavaScript assets to other assets such as images,
stylesheets, and additional JavaScript. This will enable us to set very long
cache times for our assets, which can then be controlled explicitly by setting
eg.cache_key in config.tt2, or by default any time you run autogen.
Addresses TPAC and KPAC
Signed-off-by: Dan Scott <dan@coffeecode.net> Signed-off-by: Josh Stompro <stomproj@larl.org> Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
LP#1706365: cursor for record menu items should be a pointer
When using the Mark For or Other Actions menus on the bib record page, the
cursor becomes an i-beam while hovering over the menu items instead of the
expected pointer. This commit adds an empty href attribute to the a tag for menu
items so that a pointer displays instead.
Test plan:
Log into the web client and retrieve a record. Click the 'Mark For' menu on the
record page. Pre-patch, as you scroll through the menu items, the cursor will
turn into an i-beam, indicating that text can be selected. Post-patch, the
cursor will be the expected pointer that typically displays for links.
Galen Charlton [Mon, 7 Aug 2017 15:15:57 +0000 (11:15 -0400)]
LP#1694529: tweak wording of collision alert message
And here's a test plan for the patch series as a whole:
[1] In the web staff client, retrieve a patron that has some
loans. In a separate window, open the patron editor
for that same patron.
[2] In the first window, mark one of the patron's loans
as either claims returned or claims never checked out.
[3] In the second window, make a change and attempt to save
the record. You should see a alert dialog saying that
the record could not be saved.
Bill Erickson [Thu, 29 Jun 2017 21:53:56 +0000 (17:53 -0400)]
LP#1694529 Patron editor friendly xact ID collision alert
Display a friendly alert dialog message to staff when attempting to save
a patron record that has been externally modified during editing. This
is an improvement over the existing debug alert with JSON data.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
LP#1684126: copy images used by staff portal outside of /xul/
This patch ensures that various images used by the web
staff client will remain available whenever the last bits
of the XUL client are removed.
To test:
[1] Apply patch
[2] Verify that all of the images on the web staff client's
splash page are displayed.
[3] Retrieve a patron that has an alertable condition (e.g.,
the patron record is expired. Verify that the stop sign
image is displayed.
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org> Signed-off-by: Ben Shum <ben@evergreener.net>
Galen Charlton [Wed, 17 May 2017 15:22:25 +0000 (11:22 -0400)]
LP#1411699: ensure that Dojo remains available for added content tab
This patch is meant to avoid a (very minor) silent regression
introduced by the previous patch; ultimately, though, the
functionality of tweaking the visibility of added content types
in the added content tab should be rewritten to drop any
requirement of Dojo.
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org> Signed-off-by: Bill Erickson <berickxx@gmail.com>