MODS 3.3 support was introduced in March 2009, but this
change was never included in an upgrade script. Older
sites will need to apply this update to avoid scary
segmentation faults, and it shouls be harmless for newer
sites.
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
Fixes DoB parsing in the browser client patron edit interface by
creating date objects from a whole YMD date string instead of compiling
the date as collection of pieces. Compiling dates from pieces (calling
setFullYear(), setMonth(), etc.) can have unexpected consequences,
because a change of month can result in a change of days as well, if the
number of days in the date object exceeds the capacity of the selected
month.
For example:
---
> d = new Date()
2018-05-31T14:59:26.186Z
> d.setMonth(1) 1520092766186
> d
2018-03-03T15:59:26.186Z
--
Parsing as Date(YYYY,MM,DD) instead avoids this kind of shuffling.
To test
[1] Log in to the staff client on the 31st day of the month :)
[2] Change a patron's DoB to a month that does not contain 31 days.
[3] Save patron and note on reload, the DoB shows the wrong value.
Jason Boyer [Fri, 20 Apr 2018 18:49:25 +0000 (14:49 -0400)]
LP14973322: Search for Users by Profile
Stop treating profile like a text value, instead
include users in the selected profiles and descendants.
To test
-------
[0] Search for users by last name (and / or first) and do not
select a profile, take note of results
[1] Select the top of your permission group tree (Users, likely) and
search again, results should be the same.
[2] Select a group further down the tree (Circulators, Administrators,
Patrons, etc.) and repeat the search, there should only be results
from that group and its descendants.
[3] Finally, select a group with no child groups. Results will only be
that specific group.
Cesar Velez [Fri, 30 Mar 2018 15:32:45 +0000 (11:32 -0400)]
LP#1759352-webstaff fix checkout specific due date UX
The Date Options dropdown UI added as a result of bug 1717025
hides the state of the "checkboxes" for custom due date and
the datepicker wasn't disabled when custom due date was disabled.
This addresses these UX issues, to that the user has visual feedback
as to the state of that option.
Garry Collum [Thu, 24 May 2018 02:17:38 +0000 (22:17 -0400)]
LP#1745232 - Bill History Receipt doesn't have Finish Date
Adds xact.finish and xact.summary.last_payment to the example data. Also adds xact.summary.last_payment_ts to the template body to indicate when the last payment was made. Also adds a list of variables that can be used in the template in the template's description.
To test -
1. apply the patch
2. find a patron with billings, or add some billings to a patron record.
3. make payments on some of the billings using various methods.
4. go to billing history and print the history list.
McCanna [Wed, 23 May 2018 20:53:26 +0000 (16:53 -0400)]
PINES Local Customization: Modify Labels for Stored Preferences
Add wording to Workstation > Stored Preferences page tabs to indicate
which tab is related to Hatch settings and which tab is related to
browser settings.
McCanna [Wed, 23 May 2018 21:00:57 +0000 (17:00 -0400)]
PINES Local Customization: Hide Set Default View Button
This hides the Set Default View button that is in the web staff client
on the catalog item pages. Clicking the button has caused white screen
problems that have not been resolved. (There is also a button on the Admin >
Workstation page, but that was hidden in a different local customization
patch.)
Always retrieve the latest copy transit from the server when displaying
the copy transit dialog. This resolves an issue where a just-closed
transit is used instead.
Add a filter to avoid canceled transits.
Make the transit lookup call authoritative, since the transit may have
just been created.
Chris Sharp [Mon, 7 May 2018 12:31:56 +0000 (08:31 -0400)]
LP#1743854 - Correct initial cursor focus in in-house use UI
Previously, the "Record In-House Use" UI opened with the cursor
focused in the "# of Uses" field, which required staff to manually
select the "Barcode" field. It is far more intuitive to have the
"Barcode" field have initial focus.
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
Hid availability because it didn't differentiate between in process
and checked out. Added copydepth to url because it wasn't working on
production without it.
Chris Sharp [Tue, 10 Apr 2018 15:40:35 +0000 (11:40 -0400)]
LP#1746300: Fix circulation counts in Item Status Details
Currently, the "Total Circs -Current Year" and "Total Circs -
Prev Year" numbers are seemingly randomly incorrect. This is
caused by pulling the numbers from the "circbyyr" fieldmapper
object, which results in an array of 2 rows (one for renewals
and one for new circs). The current JS only displays the count
for the first item in the array, ignoring the other.
This branch totals the two, resulting in the right result for each
year's circulations.
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
Jason Boyer [Mon, 29 Jan 2018 22:02:01 +0000 (17:02 -0500)]
LP1737540: Add Patron Information to Receipts
Adds the following fields to a patron object on print_data:
first_given_name
second_given_name
family_name
suffix
barcode
money_summary.balance_owed
money_summary.total_paid
money_summary.total_owed
expire_date
alias
has_email
has_phone
On the following receipts: Checkout, Items Out, and Bill Payment.
(money_summary left out on bill payment because it will always be out of date.)
Signed-off-by: Jason Boyer <jboyer@library.in.gov>
Modify item service selectedHoldingsCopyDelete method one more time to
use streaming response instead of getting all results in a single,
atomic call. This should better handle large numbers of selected
items.
Signed-off-by: Jason Stephenson <jason@sigio.com> Signed-off-by: Jason Boyer <jboyer@library.in.gov>
Jason Stephenson [Thu, 12 Apr 2018 14:47:40 +0000 (10:47 -0400)]
Lp 1735539: Fix Item Status ability to delete multiple copies.
Set atomic to true for the PCRUD search in the item service's
selectedHoldingsCopyDelete method, and do an angular.forEach over the
results to properly fill the copy_objects array so that all copies end
up in it. As it was only 1 copy was getting into the array.
To reproduce the bug:
1. Open Item Status in the web staff client.
2. Load multiple items, perhaps by uploading a file of barcodes.
3. Select more than 1 item from the list.
4. Choose "Delete Items" from the Actions menu.
5. Note that the dialog indicates that you will delete 1 copy.
6. Click the Cancel button in the dialog.
To test, after applying the fix branch:
1. Open Item Status in the web staff client.
2. Load multiple items, perhaps by uploading a file of barcodes.
3. Select more than 1 item from the list.
4. Choose "Delete Items" from the Actions menu.
5. Note that that the dialog indicates you will delete X copies,
where X is the number of items selected.
6. Click OK and confirm that all copies were deleted.
7. You can confirm 6 by reloading the interface and uploading the
file of barcodes again.
Jason Boyer [Mon, 2 Apr 2018 17:55:02 +0000 (13:55 -0400)]
LP1760662: Item Status Holdable Field Display
The Holdable field on the Summary tab of the Detail View
of Item Status was displaying the value for OPAC Visible.
Let's change that from opac_visible() to holdable().
Signed-off-by: Jason Boyer <jboyer@library.in.gov> Signed-off-by: Jason Stephenson <jason@sigio.com>
Consistent with the XUL client, only display patron standing penalties
(AKA Messages) that are linked to an org unit which is an ancestor,
matching, or descendant org unit of the workstation (e.g. the full
path).
To test:
[1] Create a patron Message which applies to a branch using a branch or
null-depth penalty (e.g. at BR1).
[2] Create a second message that links to the root org unit (e.g. CONS)
via depth=0 penalty.
[2] Log out and back in to the browser client at a workstation under a
different section of the org unit tree (e.g. BR3) and confirm the
Messages created at BR1 do not display, but the messages created at CONS
do.
Apply correct org unit to patron penalties created in the web staff
client. Specifically, be sure the standing penalty depth value is
honored when set.
Commit replaces manual pcrud creation with the XUL-tested API, which
calculates the correct org unit by depth for us.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Cesar Velez <cesar.velez@equinoxinitiative.org>
Chris Sharp [Tue, 10 Apr 2018 15:40:35 +0000 (11:40 -0400)]
LP#1746300: Fix circulation counts in Item Status Details
Currently, the "Total Circs -Current Year" and "Total Circs -
Prev Year" numbers are seemingly randomly incorrect. This is
caused by pulling the numbers from the "circbyyr" fieldmapper
object, which results in an array of 2 rows (one for renewals
and one for new circs). The current JS only displays the count
for the first item in the array, ignoring the other.
This branch totals the two, resulting in the right result for each
year's circulations.
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
Galen Charlton [Fri, 23 Mar 2018 18:48:02 +0000 (14:48 -0400)]
LP#1758360: handle DOB display logic in egPatronSummary correctly
This patch ensures that the patron DOB will be displayed or
obscured correctly by the standalone egPatronSummary directive
in the same way that the patron app does.
To test
-------
[1] In the web staff client, do a patron search, select two patrons,
then click the Merge Patrons button.
[2] Note that the patron DOB is not displayed in the modal.
[3] Apply the patch and repeat step #1.
[4] This time, the patron DOB will be displayed (if the
circ.obscure_dob library setting is not enabled) or the
the field label will be clickable (and clicking it will
cause the DOB to be displayed).
Bill Erickson [Mon, 19 Mar 2018 19:22:44 +0000 (15:22 -0400)]
LP#1361258 Patron reg repair user settings saving/loading
Avoid caching user setting values at the service (app) level in the user
editor. In other words, always fetch a fresh copy of the current user's
setting with each instance of the editor page.
This solves a number problems where stale versions of the cached data
were referenced and acted on, both when displaying an updating user
settings.
Additionally, ensure that clone user and stage user data is refreshed
on all page instances as the URL params that affect these values can
change per instance.
Other data that is common to all instances (e.g. the set of profile
groups) is still cached as before.
Since the display is not refreshed until the payment finishes, it
is possible to fire off a second payment by double-clicking.
This commit is a simple way to disable the button while a payment is
in process, then enable it again after the display refreshes.
Since the 'sendPayment()' function is wrapped, we may need to move
this logic up, but this being a single promise is simpler, and it
solved the problem in testing.
McCanna [Thu, 15 Feb 2018 22:37:30 +0000 (17:37 -0500)]
Modify custom default hold transit slip to include note
that item is needed for a hold. (This was at the request
of several libraries who prioritize their sorting based
on whether items are needed for holds or not.)
The action.item_user_circ_test function was previously
ignoring lost or longoverdue and paid-for circulations.
Adding a check for whether the circulation is closed
fixes this.
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
When replacing a patron's barcode in the patron editor, discard any
previous replacement attempts done in the current edit session. This
prevents cases where secondary, etc. replacement cards are accidentally
created or NULL cards that result in ugly error messages.
Galen Charlton [Mon, 27 Nov 2017 17:46:33 +0000 (12:46 -0500)]
LP#1691269: include volume fields in converted copy templates
This patch insures that call number prefix, suffix, and classification
scheme from copy templates created in the XUL unified copy editor are
brought over to web staff copy templates.
Note that in order to successfully test the call number portion of
converted copy templates in the web staff client, the volume/copy editor
default "Allow Call Number attributes in Copy Templates" should be
turned on.
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Jason Boyer [Sun, 22 Oct 2017 19:42:02 +0000 (15:42 -0400)]
LP1691269: Webstaff Copy Editor Templates
This branch will translate and transfer your XUL client templates
the first time you load the web client copy editor. From that point
on the two diverge with no further connection to each other.
This branch also allows your copy templates to travel with you
between browsers, machines, and so on, while still allowing users
that share a browser but not usernames to have their own templates.
Signed-off-by: Jason Boyer <JBoyer@library.in.gov> Signed-off-by: Cesar Velez <cesar.velez@equinoxinitiative.org> Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Terran McCanna [Wed, 10 Jan 2018 21:56:38 +0000 (16:56 -0500)]
PINES Customization: Hide Claims Never Checked Out Action
On the patron account's Items Out screen, hide the
Mark Claims Never Checked Out action since we do not use
it in PINES and there is no associated permission to prevent
it from working.
Jason Boyer [Thu, 4 Jan 2018 18:38:00 +0000 (13:38 -0500)]
LP1712646: Require a Billing Type to Bill User
Previously billing a user without choosing a billing type
would either fail silently or default to misc. This patch
requires staff to choose a billing type before the new
bill window can be dismissed.
Signed-off-by: Jason Boyer <jboyer@library.in.gov> Signed-off-by: Bill Erickson <berickxx@gmail.com>
Jason Boyer [Thu, 4 Jan 2018 17:55:16 +0000 (12:55 -0500)]
LP1741072: Global String<->Num Directives for ngModel
To increase flexibility the stringToNumber directive
has been separated into int and float versions and
aditional directives are added to convert in the other
direction. The existing use of stringToNumber in the
volume/copy editor are also converted to strToFloat.
Signed-off-by: Jason Boyer <jboyer@library.in.gov> Signed-off-by: Bill Erickson <berickxx@gmail.com>
Cesar Velez [Tue, 24 Oct 2017 18:16:33 +0000 (14:16 -0400)]
LP#1691861 - make Item Status edit items in batch in volcopy
This makes the Item Status grid action of "Edit Items" work
like the Copy Buckets grid "Edit Selected Items", in that the
copies open in the volcopy editor in batch, with no record summary.
Signed-off by: Cesar Velez <cesar.velez@equinoxinitiative.org>
Terran McCanna [Wed, 27 Dec 2017 20:58:15 +0000 (15:58 -0500)]
PINES Cust: Reset Patron Search Form with Defaults
Change code to refresh page instead of clearing individual fields,
which resets fields to the defaults we want (inactive checked and
org unit to consortium).
Display org unit shortnames in the web staff bib record Holdings View
-> Owning Library column, since displaying the full names requires
significant horizontal space.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Chris Sharp <csharp@georgialibraries.org> Signed-off-by: Jason Etheridge <jason@EquinoxInitiative.org>
Mike Rylander [Mon, 11 Dec 2017 21:21:39 +0000 (16:21 -0500)]
LP#1736763: Wait until the org tree is there before using it
In offline mode, we need to wait for the org tree to be fetched or recreated
before we set the working location dropdown. This commit adds a function
to loop and wait for that to happen.
Signed-off-by: Mike Rylander <mrylander@gmail.com>
Galen Charlton [Fri, 8 Dec 2017 15:29:40 +0000 (10:29 -0500)]
LP#1729922: correctly display most recent transit in item status
This patch ensures that the 'Most Recent Transit' display in
the web staff client's item status page shows the latest transit,
not the oldest one. This also fixes a bug where the transit
receive time never got displayed. As a side effect, this patch
also ensures that only the transit in question is fetched from
the database, not all transits on the item.
To test
-------
[1] Set up an item with some closed transits and display in in
detail view in the Item Status page. Note that the
/oldest/ transit is displayed and that the transit
receive time field is blank.
[2] Apply the patch and repeat step 1.
[3] This time, the most recent transit should be displayed, and
if that transit was received, the receive time should be
displayed.
blake [Thu, 9 Nov 2017 15:35:07 +0000 (15:35 +0000)]
lp#1724321 Web Client -- existence of record with duplicate TCN does not prevent import
This routes the MARC import execution back to the z39.50 code instead of using the generic
MARC editor. This will make use of open-ils.cat.biblio.record.xml.import instead of pcrud.
Test
1. Edit global flag variable "Cat: Use Internal ID for TCN Value" = false
2. Perform a z39.50 search, click a result and click "import"
3. Step two should be successful, now import it again and you should get an error
4. Click the same result but use "Edit then import"
5. From the MARC editor, make no changes and click "Import"
6. It won't complain about duplicate TCNs
7. Apply the patch
8. Perform steps 4 and 5
9. Notice that the editor does not allow you to import the record
McCanna [Wed, 8 Nov 2017 20:35:19 +0000 (15:35 -0500)]
Staff Client Customization: Patron Registration Form Tweaks
- Fixed alignment of checkboxes.
- Hid Claims returned on new patron registration form.
- Hid Claims never checked out.
- Made survey drop 'up' instead of dropdown so it
doesn't disappear off of page.