]> git.evergreen-ils.org Git - Evergreen.git/blob - docs/RELEASE_NOTES_2_10.adoc
Docs: adding several bug fixes to 3.0.5
[Evergreen.git] / docs / RELEASE_NOTES_2_10.adoc
1 Evergreen 2.10 Release Notes
2 ============================
3 :toc:
4 :numbered:
5
6 Evergreen 2.10.12
7 -----------------
8 This release is a security release.
9
10 Security Issue: XSS Vulnerability in Public Catalog
11 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
12 This release fixes several cross-site scripting (XSS) vulnerabilities
13 in the public catalog. When upgrading, Evergreen administrators should
14 review whether any of the following templates have been customized
15 or overridden. If so, either the template should be replaced with the
16 stock version or the XSS fix (which entails adding the `| html` filter
17 in several places) applied to the customized version.
18
19 * `Open-ILS/src/templates/opac/parts/locale_picker.tt2`
20 * `Open-ILS/src/templates/opac/parts/login/form.tt2`
21 * `Open-ILS/src/templates/opac/parts/searchbar.tt2`
22
23 Acknowledgements
24 ~~~~~~~~~~~~~~~~
25 We would like to thank the following individuals who contributed code,
26 testing and documentation patches to the 2.10.12 point release of
27 Evergreen:
28
29 * Galen Charlton
30 * Dan Scott
31
32 Evergreen 2.10.11
33 -----------------
34
35 This release contains several bug fixes improving on Evergreen 2.10.10.
36
37 * A fix to avoid fetching and creating EDI message entries that the
38 system cannot parse.
39 * A fix to prevent staff users from marking a long overdue item as lost 
40 so that the patron will not be billed twice for the same item.
41 * A fix to the link that is used on the catalog's Library Info page so
42 that links with anchors can be successfully retrieved.
43 * A replacement for the blank fallback image used when the catalog cannot
44 retrieve an added content book cover.
45 * An EDI fix that prevents EDI fetcher from crashing when the vendor
46 supplies a zero-length file.
47 * A fix to an issue where adjusting a bill to zero for a current checkout
48 prematurely closes the transaction.
49 * A fix to encoding problems in MODS output. These problems caused issues
50 when using Zotero with records in the catalog.
51 * A fix that marks a hold as fulfilled when staff check out a hold-
52 captured item for a hold whose expire time is in the past.
53 * A change to the acquisitions funding source funds drop down menu so that
54 the menu will now only display active funds and will also display the 
55 year alongside the fund.
56 * A fix to a problem where the Current Bills tab of the patron record
57 showed duplicate charges when a check in was done from the Items Out tab.
58 * A fix that hides the option to add to My Lists from the staff client since this functionality does not work as expected in the staff client.
59 * A change to the fund year selectors in acq interfaces so that the years
60 are sorted in descending order.
61 * A fix to a billing issue where transactions were not re-opened after
62 they acquired a non-zero balance at check in.
63
64 Acknowledgements
65 ~~~~~~~~~~~~~~
66 We would like to thank the following individuals who contributed code,
67 testing and documentation patches to the 2.10.11 point release of
68 Evergreen:
69
70 * Jason Boyer
71 * Galen Charlton
72 * Jeff Davis
73 * Bill Erickson
74 * Jason Etheridge
75 * Kathy Lussier
76 * Christine Morgan
77 * Michele Morgan
78 * Terran McCanna
79 * Jane Sandberg
80 * Jonathan Schatz
81 * Dan Scott
82 * Ben Shum
83 * Remington Steed
84 * Dan Wells
85 * Bob Wicksall
86
87 Evergreen 2.10.10
88 -----------------
89 This is a security release that also contains several other bug fixes improving
90 on Evergreen 2.10.9.  All users of Evergreen 2.10.x are recommended to upgrade
91 to 2.10.10 as soon as possible.
92
93 Security Issue: Credit Processor Stripe Settings Permissions
94 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
95 Unprivileged users can retrieve organizational unit setting values for
96 setting types lacking a "view" permission.  When the feature adding
97 Stripe credit card processing was added, the upgrade script neglected
98 to add the VIEW_CREDIT_CARD_PROCESSING permission to the
99 organizational unit setting type.  This means that anyone can retrieve
100 and view the settings for Stripe credit card processing.
101
102 Any system that upgraded from Evergreen version 2.5 to 2.6 is
103 affected.  If you use Stripe for credit card processing, it is
104 strongly recommended that you apply this upgrade.  Even if you do not
105 use Stripe, applying this upgrade is still recommended.  If you did
106 not upgrade from version 2.5 to 2.6 of Evergreen, but started with a
107 later version, applying this upgrade is harmless.
108
109 If you are not ready to perform a full upgrade, and if you use Stripe,
110 you can protect the settings by running the following two SQL statements:
111
112 [source,sql]
113 ----
114 UPDATE config.org_unit_setting_type
115     SET view_perm = (SELECT id FROM permission.perm_list
116         WHERE code = 'VIEW_CREDIT_CARD_PROCESSING' LIMIT 1)
117     WHERE name LIKE 'credit.processor.stripe%' AND view_perm IS NULL;
118
119 UPDATE config.org_unit_setting_type
120     SET update_perm = (SELECT id FROM permission.perm_list
121         WHERE code = 'ADMIN_CREDIT_CARD_PROCESSING' LIMIT 1)
122     WHERE name LIKE 'credit.processor.stripe%' AND update_perm IS NULL;
123 ----
124
125 Other Fixes
126 ~~~~~~~~~
127
128 Evergreen 2.10.10 also contains the following bug fixes:
129
130 * A fix to correctly apply floating group settings when performing
131 no-op checkins.
132 * A fix to the HTML coding of the temporary lists page.
133 * A fix of a problem where certain kinds of requests of information
134 about the organizational unit hierarchy to consume all available
135 `open-ils.cstore` backends.
136 * A fix to allow staff to use the 'place another hold' link without
137 running into a user interface loop.
138 * A fix to the 'Edit Due Date' form in the web staff client.
139 * A fix to sort billing types and non-barcoded item types in alphabetical
140 order in the web staff client.
141 * A fix to the 'return to grouped search results' link in the public
142 catalog.
143 * A fix to allow pre-cat checkouts in the web staff client without requiring
144 a circulation modifier.
145 * Other typo and documentation fixes.
146
147 Acknowledgements
148 ~~~~~~~~~~~~~~
149 We would like to thank the following individuals who contributed code,
150 testing and documentation patches to the 2.10.10 point release of
151 Evergreen:
152
153 * Ben Shum
154 * Bill Erickson
155 * Blake Henderson
156 * Chris Sharp
157 * Christine Burns
158 * Galen Charlton
159 * Jane Sandberg
160 * Jason Stephenson
161 * Jeanette Lundgren
162 * Josh Stompro
163 * Kathy Lussier
164 * Kyle Huckins
165 * Mike Rylander
166
167 Evergreen 2.10.9
168 ----------------
169
170 This release contains several bug fixes improving on Evergreen 2.10.8
171
172 * A fix to the web client patron interface that changed the holds count in the
173 patron summary from total / available to available / total.
174 * A fix to an issue where the Closed Dates Editor was displaying an extra day of closure.
175 * A fix to the Closed Dates Editor so that it now displays "All Day" when the library is closed for the entire day.
176 * A fix to properly format LC Call numbers in spine label printing.
177 * A fix to a bug that was causing intermittent search failures.
178
179 Acknowledgements
180 ~~~~~~~~~~~~~~~~
181 We would like to thank the following individuals who contributed code,
182 testing and documentation patches to the 2.10.9 point release of
183 Evergreen:
184
185 * Galen Charlton
186 * Kyle Huckins
187 * Jeanette Lundgren
188 * Dan Pearl
189 * Michelle Purcell
190 * Jane Sandberg
191 * Dan Scott
192 * Remington Steed
193
194
195 Evergreen 2.10.8
196 ----------------
197
198 This release contains several bug fixes improving on Evergreen 2.10.7
199
200 * A fix to that provides alphabetical sorting to the fund selector in
201 the Acquisitions Selection List -> Copies interface.
202 * The addition of a progress bar that displays when conducting a patron search in the web client.
203 * A fix to the web client patron interface so that total Items Out in the
204 patron summary now includes overdue and long overdue items. It will also
205 include Lost and Claims Returned items when the appropriate library
206 setting is enabled.
207 * A change to the public catalog My Account screen where the font for 
208 leading articles will now be smaller when sorting a list by title. 
209 * A fix to subject links in the catalog's record summary page so that
210 periods are no longer stripped from resulting subject searches, leading
211 to more accurate results when those links are clicked.
212 * A fix to avoid avoid unint warnings in the logs for prox_cache in
213 open-ils.circ.hold.is_possible.
214 * A fix to rounding errors that occured when summing owed/paid totals
215 for display in the catalog's credit card payment form.
216 * A change to sort behavior in the My Account screens. Previously, a 
217 third click on a column header returned the list to its original sort
218 order. Clicking column headers will now simply toggle the sort
219 between ascending and descending order. 
220 * The Permalink option on the catalog's record summary page will now be
221 hidden in the staff client because clicking the link in the client led
222 to no discernable change for users.
223 * A fix to the text of a notice that displays when migrating circulation
224 history during the upgrade to 2.10.
225 * An improvement to the performance for the lookup of a user's circ
226 history by adding an index on action.usr_circ_history(usr).
227 * The addition of Spanish as a supported translation so that
228 it can be configured as a language option in the public catalog.
229 * A fix so that when a bib record's fingerprint changes, it gets correctly
230 moved to a different metarecord.
231
232 Acknowledgements
233 ~~~~~~~~~~~~~~~~
234 We would like to thank the following individuals who contributed code,
235 tests and documentation patches to the 2.10.8 point release of
236 Evergreen:
237
238 * Galen Charlton
239 * Bill Erickson
240 * Jim Keenan
241 * Kathy Lussier
242 * Christine Morgan
243 * Dan Scott
244 * Ben Shum
245 * Remington Steed
246 * Josh Stompro
247 * Dan Wells
248
249 Evergreen 2.10.7
250 ----------------
251
252 This release contains several bug fixes improving on Evergreen 2.10.6.
253
254 * When adding a price to the Acquisitions Brief Record price field, it will
255 now propogate to the lineitem estimated price field.
256 * Declares UTF-8 encoding when printing from the catalog to resolve issues
257 where non-ASCII characters printed incorrectly in some browsers.
258 * Fixes an issue where the circ module sometimes skipped over booking logic
259 even when booking was running on a system.
260 * Fixes an issue where the workstation parameter was not passed through
261 the AuthProxy.pm login function, causing problems with opt-in settings and
262 transit behaviors.
263
264 Acknowledgements
265 ~~~~~~~~~~~~~~~~
266 We would like to thank the following individuals who contributed code,
267 testing and documentation patches to the 2.10.7 point release of
268 Evergreen:
269
270 * Eva Cerninakova
271 * Bill Erickson
272 * Mike Rylander
273 * Dan Scott 
274 * Dan Wells
275
276 Evergreen 2.10.6
277 ----------------
278 This release contains bug fixes improving on Evergreen 2.10.5.
279
280 Add Date Header to Action Trigger Email/SMS Templates
281 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
282 The Date: header specified in RFC 2822 has been added to the seed data
283 for the example Action Trigger email and SMS templates, but no attempt
284 has been made to automatically modify existing templates. To add this
285 header (and end any "Why are my library emails from 1969/70?" questions
286 you may have heard) make sure the following lines are in all templates
287 that use the SendEmail or SendSMS reactors:
288
289 The first is already in most sample templates, but you may need to add
290 it to the top of any custom templates:
291 `[%- USE date -%]`
292
293 And this line should be inserted into the header block of each template:
294 `Date: [%- date.format(date.now, '%a, %d %b %Y %T -0000', gmt => 1) %]`
295
296 Other Bug Fixes
297 ~~~~~~~~~~~~~~~
298 * Prorating invoice charges now works again.
299 * The claims never checked out counter on the patron record is now
300   incremented correctly when marking a lost loan as
301   claims-never-checked-out.
302 * When a transit is canceled, the copy's status is changed only
303   if its status was previously "In Transit".
304 * Retrieving records with embedded holdings via SRU and Z39.50 is now
305   faster.
306 * A performance issue with sorting entries on the public catalog
307   circulation history page is fixed.
308 * Various style and responsive design improvements are made to the
309   circulation and holds history pages in the public catalog.
310 * The public catalog holds history page now indicates if a hold
311   had been fulfilled.
312 * The hold status message in the public catalog now uses
313   better grammar.
314 * The error message displayed when a patron attempts to place
315   a hold but is prevented from doing so due to policy reasons
316   is now more likely to be useful
317 * The public catalog now draws the edition statement only
318   from the 250 field; it no longer tries to check the 534
319   and 775 fields.
320 * Embedded schema.org microdata now uses "offeredBy" rather
321   than "seller".
322 * The ContentCafe added content plugin now handles the "fake"
323   ISBNs that Baker and Taylor assigns to media items.
324 * Attempting to renew a rental or deposit item in the public
325   catalog no longer causes an internal server error.
326 * Various format icons now have transparent backgrounds (as opposed
327   to white).
328 * The file extension when exporting non-imported records is
329   now ".mrc" rather than ".xml".
330 * The staff client will no longer wait indefinitely for Novelist
331   to supply added content, improving its responsiveness.
332 * A few additional strings are now marked as translatable.
333
334 Translation Updates
335 ~~~~~~~~~~~~~~~~~~~
336 Translations in this release have been significantly increased.  In
337 particular, Spanish has received a huge update with over 9,000 new
338 translations, Czech has received a sizable update of over 800
339 translations, and additional smaller updates have been added for
340 Arabic, French (Canada), and Armenian.
341
342 Acknowledgments
343 ~~~~~~~~~~~~~~~
344 We would like to thank the following individuals who contributed
345 code, testing and documentation patches to the 2.10.6 point release of Evergreen:
346
347 * Thomas Berezansky
348 * Jason Boyer
349 * Galen Charlton
350 * Jeff Davis
351 * Bill Erickson
352 * Blake Graham-Henderson
353 * Jim Keenan
354 * Kathy Lussier
355 * Mike Rylander
356 * Jane Sandberg
357 * Dan Scott
358 * Ben Shum
359 * Remington Steed
360 * Jason Stephenson
361 * Josh Stompro
362 * Yamil Suarez
363 * Dan Wells
364
365 Evergreen 2.10.5
366 ----------------
367 This release contains bug fixes improving on Evergreen 2.10.4
368
369 * Fixes SIP2 failures with patron information messages when a
370 patron has one or more blocking penalties that are not otherwise
371 ignored.
372 * Recovers a previously existing activity log entry that logged the
373 username, authtoken, and workstation (when available) for successful
374 logins.
375 * Fixes an error that occurred when the system attempted to display a translated
376 string for the "Has Local Copy" hold placement error message.
377 * Fixes an issue where the Show More/Show Fewer Details button didn't work in
378 catalogs that default to showing more details.
379 * Removes Social Security Number as a stock patron identification type for
380 new installations. This fix does not change patron identification types for 
381 existing Evergreen systems.
382 * Adds two missing link fields (patron profile and patron home library) to
383 the fm_idl.xml for the Combined Active and Aged Circulations (combcirc)
384 reporter source.
385 * Adds a performance improvement for the "Clear Holds Shelf" checkin modifier.
386
387 Acknowledgements
388 ~~~~~~~~~~~~~~~~
389 We would like to thank the following individuals who contributed
390 code, testing and documentation patches to the 2.10.5 point release of Evergreen:
391
392 * Galen Charlton
393 * Bill Erickson
394 * Jeff Godin
395 * Codey Kolasinski
396 * Jeanette Lundgren
397 * Kathy Lussier
398 * Terran McCanna
399 * Michele Morgan
400 * Jason Stephenson
401
402 Evergreen 2.10.4
403 ----------------
404 This release contains bug fixes improving on Evergreen 2.10.3
405
406 * Fixes the responsive view of the My Account Items Out screen so that Title and
407 Author are now in separate columns.
408 * Fixes an incorrect link for the MVF field definition and adds a new link to
409 BRE in fm_IDL.xml.
410 * Fixes a bug where the MARC stream authority cleanup deleted a bib 
411 record instead of an authority record from the authority queue.
412 * Fixes a bug where Action Triggers could select an inactive event
413 definition when running.
414 * Eliminates the output of a null byte after a spool file is processed
415 in MARC steam importer.
416 * Fixes an issue where previously-checked-out items did not display in
417 metarecord searches when the Tag Circulated Items Library Setting is
418 enabled.
419 * Fixes an issue in the 0951 upgrade script where the script was not
420 inserting the version into config.upgrade_log because the line to do so
421 was still commented out.
422
423 Acknowledgments
424 ~~~~~~~~~~~~~~~
425 We would like to thank the following individuals who contributed
426 code, testing, and documentation patches to the 2.10.4 point release
427 of Evergreen:
428
429 * Jason Boyer
430 * Bill Erickson
431 * Galen Charlton
432 * Kathy Lussier
433 * Jason Stephenson
434 * Josh Stompro
435
436
437 Evergreen 2.10.3
438 ----------------
439 This release contains bug fixes improving on Evergreen 2.10.2:
440
441 * Fixes a critical bug where a newly-registered patron record could
442   not be used to log in to Evergreen using the password supplied during
443   registration. Under some circumstances, the same bug could also
444   prevent patron records that were modified via the patron registration
445   form from being used to log in.
446 * Emails sent using the Action Trigger SendEmail reactor now always
447   MIME-encode the From, To, Subject, Bcc, Cc, Reply-To, and Sender
448   headers. As a consequence, non-ASCII character in those fields are
449   more likely to be displayed correctly in email clients.
450
451 Acknowledgements
452 ~~~~~~~~~~~~~~
453 We would like to thank the following individuals who contributed
454 code, testing, and documentation patches to the 2.10.3 point release
455 of Evergreen:
456
457 * Galen Charlton
458 * Pasi Kallinen
459 * Kathy Lussier
460 * Mike Rylander
461 * Dan Scott
462 * Remington Steed
463 * Dan Wells
464
465 Evergreen 2.10.2
466 ----------------
467 This release contains several bug fixes improving on Evergreen 2.10.1
468
469 * Fixes a bug where phrase searching in the catalog failed when the phrase
470 started or ended with punctuation.
471 * Fixes a bug where changing the sort order in the public catalog to
472 "relevance" could fail.
473 * Fixes a bug that prevented users from recreating a monograph part that
474 had previously been deleted.
475 * Fixes a bug where serials checkouts failed for users that track circulation
476 history.
477 * Fixes a bug that prevented the Library Settings Editor from
478 consistently retrieving the values of library settings.
479 * Fixes several issues with the new web-based Angular patron editor, including:
480 ** Allows barcodes to be used as user name even if it doesn't match the user
481 name regex.
482 ** Presents an alert when trying to save a form with invalid values.
483 ** Allows staff to delete all patron addresses if the corresponding Library 
484 Setting allows them to do so.
485 ** Honors Library Settings to require the county and state fields at patron
486 registration time.
487 ** Resizes checkboxes that had become huge in some browsers.
488 ** Displays the New Address button at all times.
489 ** Prevents staff from editing linked addresses for cloned users.
490 ** Fixes a bug where out-of-scope stat cats would be incorrectly bundled in the 
491 patron save operation, resulting in a server-side error on save.
492 * Silences unnecessary warnings emitted for libraries using extending grace
493 periods.
494 * Removes support for Debian Squeeze now that its long-term support period
495 has ended.
496 * Fixes a bug that had prevented the dependency libpcre3 from being
497 intalled on Debian Jessie.
498 * Fixes some QA tests that had been failing.
499 * Renumbers the Perl unit test files.
500
501 Acknowledgements
502 ~~~~~~~~~~~~~~~~
503 We would like to thank the following individuals who contributed
504 code and documentation patches to the 2.10.2 point release of Evergreen:
505
506 * Jason Boyer
507 * Steve Callender
508 * Galen Charlton
509 * Bill Erickson
510 * Anna Goben
511 * Angela Kilsdonk
512 * Debbie Luchenbill
513 * Jennifer Pringle
514 * Mike Rylander
515 * Jane Sandberg
516 * Jason Stephenson
517 * Yamil Suarez
518
519 We also thank the following organizations whose employees contributed
520 patches:
521
522 * BC Libraries Cooperative
523 * Berklee College of Music
524 * Equinox Software, Inc.
525 * Evergreen Indiana
526 * King County Library System
527 * Linn Libraries Consortium
528 * Merrimack Valley Library Consortium
529 * MOBIUS
530
531
532 Evergreen 2.10.1
533 ----------------
534
535 Evergreen 2.10.1 is a bugfix release that fixes one significant
536 bug in 2.10.0:
537
538 * https://bugs.launchpad.net/bugs/1560174[Bug 1560174: Importing MARC records can fail in database upgraded to 2.10.0]
539
540 This bug affected only databases that were upgraded to 2.10.0 from a
541 previous version; fresh installations of 2.10.0 are not affected.
542
543 Evergreen users who prefer not to perform a full upgrade from 2.10.0
544 to 2.10.1 can fix the bug by applying the database update script
545 `2.10.0-2.10.1-upgrade-db.sql` (found in the source directory
546 `Open-ILS/src/sql/Pg/version-upgrade`).
547
548 Evergreen 2.10.1 Acknowledgments
549 --------------------------------
550 The Evergreen project would like to thank the following 
551 individuals who contributed code and testing to this release
552 of Evergreen:
553
554  * Galen Charlton
555  * Dan Wells
556
557 Evergreen 2.10.0 Upgrade notes
558 ------------------------------
559
560 * Support for PostgreSQL 9.1 is deprecated as of
561   the release of Evergreen 2.10.0. Users are recommended
562   to install Evergreen on PostgreSQL 9.2 or later.
563 * In the next major release following 2.10.0, Evergreen will no
564   longer officially support PostgreSQL 9.1.
565 * Please read the release notes thoroughly for information
566   about changes that Evergreen administrators may need
567   to make manually when upgrading to 2.10.0.  In particular,
568   the enhancement to user password storage introduces a
569   new service, `open-ils.auth_internal`, and requires
570   changes to `opensrf.xml` in order for users to be able
571   log in.
572
573 Evergreen 2.10.0 New Features
574 -----------------------------
575
576
577
578 Acquisitions
579 ~~~~~~~~~~~~
580
581
582
583 PO Line item "paid" label
584 ^^^^^^^^^^^^^^^^^^^^^^^^^
585 A new "paid" label appears along the bottom of each line item in the PO 
586 display when every non-canceled copy on the line item has been invoiced.
587
588
589
590
591 Disencumber funds on invoice close
592 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
593
594 Fund debits linked to an invoice are now marked as paid (encumbrance=false)
595 when the invoice is marked as closed/complete instead of at invoice create
596 time.  This is particularly useful for EDI invoices which may be 
597 created well in advance of receipt and payment.
598
599
600
601
602
603 PO actions selector always visible
604 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
605
606 The actions selector is now always visible in the purchase order view,
607 even when no line items exist.  With this, users can print PO's that
608 only contain direct charges.
609
610 The custom "Add Brief Record" button is no longer present, since the
611 same action is accessible via the now-visible selector.
612
613
614
615
616 Administration
617 ~~~~~~~~~~~~~~
618
619
620
621 Set application name when connecting to database
622 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
623 The services that connect directly to the PostgreSQL database
624 (and Clark Kent) now look for an application_name parameter
625 as part of the database login credentials specified in
626 `opensrf.xml`.  If present, the value is used to set the
627 application name Pg connection value; this in turn shows up in
628 the Postgres `pg_stat_activity` table and Pg's logs.
629
630
631
632
633 Credit card receipts and privacy
634 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
635
636 To improve privacy and security, Evergreen now stores less data 
637 about credit card transactions.  The following fields are no 
638 longer stored:
639
640  * `cc_type`
641  * `cc_first_name`
642  * `cc_last_name`
643  * `expire_month`
644  * `expire_year`
645
646 NOTE: All existing data within these fields will be deleted during
647 the upgrade.  Reports using this data will no longer function.
648
649 Additionally, a tool has been added to Evergreen for clearing the 
650 last 4 digits of the credit payment from the database after payments
651 reach a certain age.
652
653 Print/email templates
654 +++++++++++++++++++++
655
656 The stock print and email payment templates have been modified to no 
657 longer use these fields, but only when the existing templates matched
658 the stock templates.  If local changes have been applied, it will
659 be necessary to modify local templates to avoid referencing these
660 fields which no longer exist.
661
662 Any templates whose hook is "money.format.payment_receipt.print" or 
663 "money.format.payment_receipt.email" may need modification.  In stock
664 Evergreen, these are templates:
665
666 1. "money.payment_receipt.email" (stock id 29)
667 2. "money.payment_receipt.print" (stock id 30)
668
669 Example diff:
670
671 [source,diff]
672 ---------------------------------------------
673 -  [% CASE "credit_card_payment" %]credit card (
674 -      [%- SET cc_chunks = mp.credit_card_payment.cc_number.replace(' ','').chunk(4); -%]
675 -      [%- cc_chunks.slice(0, -1+cc_chunks.max).join.replace('\S','X') -%] 
676 -      [% cc_chunks.last -%]
677 -      exp [% mp.credit_card_payment.expire_month %]/[% mp.credit_card_payment.expire_year -%]
678 -  )
679 +  [% CASE "credit_card_payment" %]credit card
680 +  [%- IF mp.credit_card_payment.cc_number %] ([% mp.credit_card_payment.cc_number %])[% END %]
681 ---------------------------------------------
682
683 Clearing the last 4 of the CC number
684 ++++++++++++++++++++++++++++++++++++
685
686 To activate automatic CC number clearing, add the following to opensrf's
687 crontab.  Change timing to suit.
688
689 [source,sh]
690 ---------------------------------------------
691 5  4  * * *   . ~/.bashrc && $EG_BIN_DIR/clear_cc_number.srfsh
692 ---------------------------------------------
693
694 The default retention age is 1 year, but this can be changed by modifying
695 `clear_cc_number.srfsh` (typically found in `/openils/bin/`).  Replace "1 year"
696 with the age of your choice.
697
698
699
700
701
702
703 Configure multiple telephony servers via action/trigger
704 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
705 If you are using the AstCall action/trigger reactor
706 to generate callfiles to send to an Asterisk server, until
707 now the only place to specify the relevant configuration
708 was in `opensrf.xml`. However, this restricted an Evergreen
709 consortium to using only one Asterisk instance.
710
711 Now, the telephony parameters can also be specified as 
712 A/T event parameters, allowing per-library configuration.
713
714 .Telephony parameters
715 |===
716 | Name | Example value
717
718 | enabled
719 | 0
720
721 | driver
722 | "SIP"
723
724 | channels
725 | ["Zap/1", "Zap/2", "IAX/user:secret@widgets.biz"]
726
727 | host
728 | "localhost"
729
730 | port
731 | "10080"
732
733 | user
734 | "evergreen"
735
736 | pw
737 | "evergreen"
738
739 | callfile_lines
740 | ["MaxRetries: 3", "RetryTime: 60", "WaitTime: 30", "Archive: 1", "Extension: 10"]
741 |===
742
743
744
745
746 Juvenile-to-adult batch script honors library setting
747 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
748
749 The batch `juv_to_adult.srfsh` script that, when set up as a cronjob,
750 is responsible for toggling a patron from juvenile to adult now
751 honors the age value set in the library setting named "Juvenile Age
752 Threshold" (`global.juvenile_age_threshold`).  When no library setting value
753 is present at a given patron's home library, the value passed in to the
754 script will be used as a default.
755
756
757
758
759 New reporting source for hold/copy ratios
760 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
761 A new reporting source is added, "Hold/Copy Ratio per Bib
762 and Pickup Library (and Descendants)", that, for each bib
763 that has a hold request on it or any of its components,
764 calculates the following:
765
766  * active holds at each OU (including the OU's descendants)
767  * holdable copies at each OU (and its descendants)
768  * the ratio of the above two counts
769  * counts and ratio across the entire consortium
770
771 This source differs from the "Hold/Copy Ratio per Bib
772 and Pickup Library" source by including all descendants
773 of the organization unit one is filtering on.
774
775 One use case is allowing a multi-branch system within an
776 Evergreen consortium that doesn't do full resource sharing
777 to readily calculate whether additional copies should be
778 purchased for that system.
779
780
781
782
783 New patron action/trigger notice
784 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
785
786 A new action/trigger event definition ("New User Created Welcome Notice") 
787 has been added that will allow you to send a notice after a new patron has 
788 been created, based on the actor.usr create-date field.
789
790 This notice can be used for various tasks.
791
792   * Sending a welcome email to new patrons to market library services.
793   * Confirm that a new patron email address is correct.
794   * Generate postal notices to send a welcome packet to new patrons.
795
796 Enable this event in the staff client at *Admin* -> *Local Administration* 
797 -> *Notifications / Action Triggers*.
798
799
800
801
802 Improved password management and authentication
803 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
804 Evergreen user passwords are now stored with additional layers of 
805 encryption and may only be accessed directly by the database, not
806 the application layer.
807
808 All API changes are backwards compatible with existing 3rd-party
809 clients.
810
811 Migrating passwords
812 +++++++++++++++++++
813
814 Passwords are migrated for each user automatically the first time a user
815 logs in under the new setup.  However, it is also possible to force
816 password migration for a given user via a database function:
817
818 [source,sql]
819 ------------------------------------------------------------
820 -- actor.migrate_passwd() will only migrate un-migrated 
821 -- accounts, but it's faster to avoid any re-migration attempts.
822 SELECT actor.migrate_passwd(au.id)
823 FROM actor.usr au
824     LEFT JOIN actor.passwd pw ON (pw.usr = au.id)
825 WHERE pw.usr IS NULL; 
826 ------------------------------------------------------------
827
828 Using this, admins could perform manual batch updates to force all
829 users to use the new, more secure passwords, regardless of when or
830 whether a patron logs back into the system.  
831
832 Beware that doing this for all users in a large database will 
833 take some time and should probably be performed in batches.
834
835 Changing Encryption Work Factor
836 +++++++++++++++++++++++++++++++
837
838 Roughly speaking, the 'work factor' determines the amount of time/effort
839 required to crack passwords.  The higher the value, the more secure the
840 password.  Higher values also mean that it takes longer for password
841 verification (e.g. during login) to work.
842
843 At time of release, Evergreen uses a work factor value of 10.  The value
844 is set in the database table/column actor.passwd_type.iter_count (hash
845 iteration count).  When this value is modified, any passwords created or
846 modified after the change will use the new work factor.  Other passwords
847 will continue using the work factor in place when they were
848 created/modified, until they are changed once again.
849
850 Beware that raising the work factor can have a significant impact on
851 login speeds.  A work factor of 10 requires ~0.1 seconds to verify a
852 password.  A work factor of 15 takes almost 2 full seconds!  Also beware
853 that once a password is encoded with a higher work factor, it cannot be
854 lowered again through any automatic means.  The owner of the password
855 would have to log in and modify the password after the work factor is
856 re-lowered.
857
858 Because of this, it's recommended that admins thoroughly test work
859 factor modifications before deploying to production.
860
861 To check encryption timing:
862
863 [source,sql]
864 --------------------------------------------------------------------------
865 -- enable psql timing
866 evergreen=# \timing
867
868 -- encode password "HELLOWORLD" with a work factor of 10.
869 evergreen=# select crypt('HELLOWORLD', gen_salt('bf', 10));
870 (1 row)
871
872 Time: 95.082 ms
873 --------------------------------------------------------------------------
874
875 open-ils.auth_internal
876 ++++++++++++++++++++++
877 To support the new storage mechanism, a new Evergreen service has
878 been added called `open-ils.auth_internal`.  This service runs on
879 the private OpenSRF/XMPP domain and is used to store authenticated 
880 user data in the authentication cache.  
881
882 This is a required service and changes to `opensrf.xml` (typically 
883 `/openils/conf/opensrf.xml`) are needed to run the new service.
884
885 .Modifying opensrf.xml
886 * A new `<open-ils.auth_internal>` app stanza is added to define the 
887   new service
888 * Cache timeout settings are moved from the app stanza for `open-ils.auth`
889   into `open-ils.auth_internal`
890 * `open-ils.auth_internal` is added to the set of running services for the 
891   domain.
892
893 Example diff:
894
895 [source,diff]
896 ---------------------------------------------------------------------
897 diff --git a/Open-ILS/examples/opensrf.xml.example b/Open-ILS/examples/opensrf.xml.example
898 index 3b47481..59f737a 100644
899 --- a/Open-ILS/examples/opensrf.xml.example
900 +++ b/Open-ILS/examples/opensrf.xml.example
901 @@ -424,6 +424,29 @@ vim:et:ts=4:sw=4:
902                  </unix_config>
903                  <app_settings>
904                      <!-- defined app-specific settings here -->
905 +                    <auth_limits>
906 +                        <seed>30</seed> <!-- amount of time a seed request is valid for -->
907 +                        <block_time>90</block_time> <!-- amount of time since last auth or seed request to save failure counts -->
908 +                        <block_count>10</block_count> <!-- number of failures before blocking access -->
909 +                    </auth_limits>
910 +                </app_settings>
911 +            </open-ils.auth>
912 +
913 +            <!-- Internal authentication server -->
914 +            <open-ils.auth_internal>
915 +                <keepalive>5</keepalive>
916 +                <stateless>1</stateless>
917 +                <language>c</language>
918 +                <implementation>oils_auth_internal.so</implementation>
919 +                <unix_config>
920 +                    <max_requests>1000</max_requests>
921 +                    <min_children>1</min_children>
922 +                    <max_children>15</max_children>
923 +                    <min_spare_children>1</min_spare_children>
924 +                    <max_spare_children>5</max_spare_children>
925 +                </unix_config>
926 +                <app_settings>
927 +                    <!-- defined app-specific settings here -->
928                      <default_timeout>
929                          <!-- default login timeouts based on login type -->
930                          <opac>420</opac>
931 @@ -431,13 +454,10 @@ vim:et:ts=4:sw=4:
932                          <temp>300</temp>
933                          <persist>2 weeks</persist>
934                      </default_timeout>
935 -                    <auth_limits>
936 -                        <seed>30</seed> <!-- amount of time a seed request is valid for -->
937 -                        <block_time>90</block_time> <!-- amount of time since last auth or seed request to save failure counts -->
938 -                        <block_count>10</block_count> <!-- number of failures before blocking access -->
939 -                    </auth_limits>
940                  </app_settings>
941 -            </open-ils.auth>
942 +            </open-ils.auth_internal>
943 +
944 +
945  
946              <!-- Authentication proxy server -->
947              <open-ils.auth_proxy>
948 @@ -1177,6 +1197,7 @@ vim:et:ts=4:sw=4:
949                  <appname>open-ils.circ</appname> 
950                  <appname>open-ils.actor</appname> 
951                  <appname>open-ils.auth</appname> 
952 +                <appname>open-ils.auth_internal</appname>
953                  <appname>open-ils.auth_proxy</appname> 
954                  <appname>open-ils.storage</appname>  
955                  <appname>open-ils.justintime</appname>  
956 ---------------------------------------------------------------------
957
958
959
960
961
962
963
964
965 Sortable HTML reports
966 ^^^^^^^^^^^^^^^^^^^^^
967 HTML reports can now be sorted by clicking on the header for a given column.
968 Clicking on the header toggles between sorting the column in ascending and
969 descending order. Note that sorting is available only when there are
970 at most 10,000 rows of output.
971
972
973
974
975 Cataloging
976 ~~~~~~~~~~
977
978
979
980 Additional fixed fields
981 ^^^^^^^^^^^^^^^^^^^^^^^
982 The AccM, Comp, CrTp, EntW, Cont, FMus, LTxt, Orig, Part, Proj, Relf, SpFm,
983 SrTp, Tech, and TrAr fixed fields have been defined and coded value maps added
984 so they can also be used for Advanced Searches or inclusion in Composite Value Maps.
985
986 Note that AccM, Cont, LTxt, Relf, and SpFm are  compositite values based on
987 the values of "helper" fields like AccM(1), AccM(2), and so on. These positional
988 fields can be ignored.
989
990 Coded value maps have also been added for Cont, Ctry, and DtSt, and the Time field
991 has been defined. All of these fields are now available in the Fixed Field Editor
992 when editing the appropriate records.
993
994
995
996
997 Quickly export non-imported records
998 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
999 When inspecting a queue in MARC Batch Import/Export, there is now
1000 a link to download to MARC file any records in the queue that were
1001 not imported into the catalog.  This allows catalogers to quickly
1002 manipulate the records that failed to import using an external
1003 tool, then attempt to import them again.
1004
1005
1006
1007
1008 Link personal name/title series added entries
1009 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1010 The authority linker script now supports linking the MARC21
1011 field 800 (series added entry - personal name) to authority
1012 records.
1013
1014
1015
1016
1017 MARC stream importer authority records and repairs
1018 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1019
1020 The MARC stream importer script, commonly used with external 
1021 services like OCLC Connexion, is now capable of importing authority
1022 records in addition to bib records.  A single running instance of
1023 the script can import either type of record, based on the record
1024 leader.
1025
1026 New Options
1027 +++++++++++
1028
1029  * --auth-merge-profile
1030  * --auth-queue
1031  * --bib-import-no-match
1032  * --bib-auto-overlay-exact
1033  * --bib-auto-overlay-1match
1034  * --bib-auto-overlay-best-match
1035  * --auth-import-no-match
1036  * --auth-auto-overlay-exact
1037  * --auth-auto-overlay-1match
1038  * --auth-auto-overlay-best-match
1039
1040 Deprecated options
1041 ++++++++++++++++++
1042
1043 The following options still work and map to the "bib" equivalent
1044 of the option, however a deprecation warning message is generated 
1045 when the script is started.
1046
1047  * --import-no-match
1048  * --auto-overlay-exact
1049  * --auto-overlay-1match
1050  * --auto-overlay-best-match
1051
1052 No longer supported options
1053 +++++++++++++++++++++++++++
1054
1055 --import-by-queue is no longer supported.  This option serves no
1056 particular purpose and is a bad idea when re-using the same queue over
1057 and over as most people do, because queue bloat will increase run times.
1058
1059 --noqueue (AKA "direct import") is no longer supported.  All imports go
1060 through Vandelay now.
1061
1062
1063
1064
1065 Support for monograph parts import in MARC Batch Import/Export
1066 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1067 When adding or overlaying copies in MARC Batch Import/Export
1068 (Vandelay), monograph part labels can now be assigned during the import
1069 process.  This feature is modeled after the existing support for
1070 statistical category import.  As such, it:
1071
1072  * Uses '|' characters to separate labels to allow for multiple part
1073    assignment
1074  * Adds to (rather than replaces) any existing parts assigned to overlay
1075    copies
1076
1077
1078
1079
1080 Circulation
1081 ~~~~~~~~~~~
1082
1083
1084
1085 Alternate parts selection display when placing holds
1086 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1087 Users often miss the list of parts on the Place Holds screen, leading to many
1088 title-level holds on records where only one or two libraries may have
1089 'unparted' copies.
1090
1091 A new option is available to change this display so that a part is selected
1092 via radio buttons instead of the traditional dropdown menu. This display
1093 increases the visibility of parts on the Place Holds screen and also
1094 forces users to make an explicit choice.
1095
1096 To enable the alternate display, set the enable.radio.parts option to 'true'
1097 in config.tt2.
1098
1099 New config.tt2 setting
1100 ++++++++++++++++++++++
1101 enable.radio.parts
1102
1103
1104 Web staff client patron editor
1105 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1106 The web staff interface now includes a patron editor/registration form
1107 that is written using AngularJS, leading to faster and more responsive
1108 patron editing.  This feature is currently available in preview mode, but
1109 supports the following actions:
1110
1111   * adding and editing base patron records and addresses
1112   * setting statistical categories
1113   * editing secondary groups
1114   * cloning patron records
1115   * duplicate detection
1116   * surveys
1117
1118
1119
1120
1121 ==== Non-active status copy transit message ====
1122
1123 After copy checkin, if the copy is in transit, display a special
1124 message in the transit alert dialog and in the printed transit receipt
1125 (optionally, via macro) if the copy is in (or, rather, will be once it
1126 arrives at its destination) a non-active copy status.
1127
1128 ===== Upgrade notes =====
1129
1130  * To add the new message to the transit slip, add the
1131    'transit_copy_status_msg' MACRO.
1132  * To remove the new message from the alert dialog, remove the 
1133    'staff.circ.utils.transit.copy_status_message' string property
1134    from 'Open-ILS/xul/staff_client/server/locale/LOCALE/circ.properties'
1135  * For a list of non-active copy statuses, see in the staff client
1136    under Admin -> Server Administration -> Copy Statuses.
1137
1138
1139
1140
1141
1142 Selectively disallow opt-in based on patron's home library
1143 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1144 A new library setting has been added which enables a library to prevent their
1145 patrons from being opted in at other libraries.
1146
1147 For example, consider the following org unit hierarchy:
1148
1149        Org Units          Depth
1150
1151           CONS              0
1152            |
1153       +-----+-----+
1154       |           |
1155      SYS1        SYS2       1
1156       |           |
1157    +--+--+     +--+--+
1158    |     |     |     |
1159   BR1   BR2   BR3   BR4     2
1160
1161 Suppose that SYS1 wishes to prevent its patrons from being opted in at SYS2.
1162 To accomplish this, it sets the value of the "Restrict patron opt-in to home
1163 library and related orgs at specified depth" setting to 1, meaning that patrons
1164 at SYS1 libraries at or below that depth in the org tree cannot be opted in by
1165 libraries outside that part of the org tree.  Thus, BR1 patrons can be opted in
1166 at BR2, but not at BR3 or BR4.
1167
1168 (This setting is distinct from the "Patron Opt-In Boundary" setting, which
1169 merely determines the depth at which Evergreen prompts for the patron to opt
1170 in.)
1171
1172 New library setting
1173 +++++++++++++++++++
1174   * Restrict patron opt-in to home library and related orgs at specified depth (`org.restrict_opt_to_depth`)
1175
1176
1177
1178
1179 Standing penalty ignore proximity
1180 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1181
1182 Standing penalties now have an `ignore_proximity` field that takes an
1183 integer value.  When set, the value of this field represents the
1184 proximity from the user's home organizational unit where this penalty
1185 will be ignored for purposes of circulation and holds.  Typical values
1186 for this field would be 0, 1, or 2 when using a standard hierarchy of
1187 Consortium -> System -> Branch -> Sublibrary/Bookmobile.  A value of 1
1188 would cause the penalty to be ignored at the user's home organization
1189 unit, its parent and/or immediate child.  A value of 2 should cause
1190 it to be ignored at the above as well as all sibling organizational
1191 units to the user's home.  In all cases, a value of zero causes the
1192 penalty to be ignored at the user's home and to apply at all other
1193 organizational units.  If the value of this field is left unset (or
1194 set to a negative value), the penalty will still take effect
1195 everywhere using the normal organizational unit and depth values.  If
1196 you use a custom hierarchy, you will need to figure out any values
1197 greater than 0 on your own.
1198
1199 The `ignore_proximity` does not affect where penalties are applied. It
1200 is used when determining whether or not a penalty blocks an activity
1201 at the current organizational unit or the organizational unit that
1202 owns the copy involved in the current transaction.  For instance, if
1203 you set the `ignore_proximity` to 0 on patron exceeds overdue fines,
1204 then the patron will still be able to place holds on and checkout
1205 copies owned by their home organizational unit at their home
1206 organizational unit.  They will not, however, be able to receive
1207 copies from other organizational units, nor use other organizational
1208 units as a patron.
1209
1210
1211
1212 Patron checkout history stored in a dedicated table
1213 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1214
1215 Patron checkout history is now stored in separate, dedicated database 
1216 table instead of being derived from the main circulation data.  This
1217 allows us to age/anonymize circulations more aggressively, since they 
1218 no longer need to stick around in cases where they represent a patron's
1219 opt-in checkout history.
1220
1221 This has a number of patron privacy implications.
1222
1223  * Minimal metadata is stored in the new patron checkout history table, 
1224    so once the corresponding circulation is aged, the full set of 
1225    circulation metadata is no longer linked to a patron's reading history.
1226    ** It is limited to checkout date, due date, checkin date, and copy data.
1227  * Staff can no longer report on a patron's reading history.  
1228    ** While it is possible to build aggregate reports on reading history 
1229       data, it is not possible to report on which user an entry in the
1230       history table belongs to.  (The 'usr' column is hidden from the 
1231       reporter).
1232  * Staff can no longer retrieve a patron's reading history via API.  Only
1233    the user that owns the history data can access it.
1234
1235 Upgrade notes
1236 +++++++++++++
1237
1238 Administrators should verify the CSV export of checkout history works after
1239 deploying this change.  If local changes were made to the CSV template,
1240 the template will not be updated as part of this deployment.  The stock
1241 template was modified to handle gracefully NULL values for checkin_time.
1242
1243 For example:
1244
1245 [source,diff]
1246 ------------------------------------------------------------------------
1247 -    Returned: [% date.format(helpers.format_date(circ.checkin_time), '%Y-%m-%d') %]
1248 +    Returned: [%
1249 +        date.format(
1250 +            helpers.format_date(circ.checkin_time), '%Y-%m-%d')
1251 +            IF circ.checkin_time;
1252 +    %]
1253 ------------------------------------------------------------------------
1254
1255
1256
1257 Client
1258 ~~~~~~
1259
1260
1261
1262 Holds count column picker option
1263 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1264 A new column picker option showing the number of holds for a given item will
1265 now be available in various interfaces displaying item information, including
1266 the patron's Items Out tab and the Item Status, Check Out, Check In, Renew
1267 Item and Record In-House Use screens.
1268
1269 Note: Because the holds count is generated from the hold_copy_map, newly-added
1270 items and items in a non-holdable status will not display accurate hold counts
1271 until 24 hours after they have been added to the system or moved to a holdable
1272 copy status.
1273
1274
1275 Distinct images for pop-ups and slips
1276 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1277 The client now supports using distinct images for hold, transit, and booking
1278 reservation popup windows and slips. In addition, three new images have been
1279 provided, replacing the turtle that previously displayed. The turtle file
1280 is still available in the images directory for those sites that still wish
1281 to use it.
1282
1283
1284 Development
1285 ~~~~~~~~~~~
1286
1287
1288
1289 Removal of unused methods
1290 ^^^^^^^^^^^^^^^^^^^^^^^^^
1291 The following public methods, which were both broken and not in use,
1292 are removed:
1293
1294  * `open-ils.actor.org_unit.closed_date.create`
1295  * `open-ils.actor.org_unit.closed_date.delete`
1296
1297
1298
1299
1300
1301 Public catalog
1302 ~~~~~~~~~~~~~~
1303
1304 Editable borrowing history
1305 ^^^^^^^^^^^^^^^^^^^^^^^^^^
1306 Patrons can now delete titles that they do not wish to appear in their
1307 Check Out History.
1308
1309  * In "My Account", click on the "Items Checked Out" tab, then
1310    the "Check Out History" sub-tab.
1311  * Check off the items to conceal.
1312  * Click the Go button next to the "Delete Selected Titles" drop-down box.
1313  * Click OK in the pop-up to confirm the deletion.  Note that deletions
1314    cannot be undone.
1315
1316 Deleted titles will also not appear in the downloaded CSV file.
1317
1318 Patron history disable warning
1319 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1320
1321 When disabling checkout and/or holds history in the public catalog's
1322 Search and History Preferences tab, patrons will be warned that the
1323 operation is irreversible when history data exists that will be
1324 deleted as part of the update.
1325
1326
1327
1328 Include parts label when sorting copies on the record details page
1329 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1330 The list of copies on the catalog's record details page now includes
1331 the part label in the default sort order.
1332
1333 Specifically, copies are now sorted by (in order), org unit, then
1334 call number, then part label sortkey, then copy number, and
1335 finally barcode.
1336
1337 Previously, the hierarchy was org unit, then call number,
1338 then copy number, and finally barcode
1339
1340
1341
1342 Quick option to change search scope to all libraries
1343 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1344 A common usage of the catalog is to do a search in a restricted scope,
1345 like a local library. When the results are lacking, the search is repeated in a
1346 consortium-wide scope.  This feature provides an optional button and checkbox
1347 to alter the depth of the search to a defined level.
1348
1349 This feature is enabled by default and can be configured in the Depth Button/
1350 Checkbox section of config.tt2.
1351
1352 New config.tt2 settings
1353 +++++++++++++++++++++++
1354   * ctx.depth_sel_checkbox
1355   * ctx.depth_sel_button
1356   * ctx.depth_sel_depth
1357   * ctx.sel_button_label
1358   * ctx.depth_sel_button_class
1359   * ctx.depth_sel_checkbox_label
1360   * ctx.depth_sel_tooltip
1361   * ctx.depth_sel_resultshint
1362
1363 Limiter to exclude electronic resources
1364 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1365 A limiter to exclude electronic resources from search results is now available
1366 on the advanced search screen and from the search results page. This limiter
1367 will exclude any search results with an item form of o or s. This limiter
1368 will be applied on top of any other format limiters used in the search.
1369
1370 The checkboxes are disabled by default. To display them in both places, set
1371 the 'ctx.exclude_electronic_checkbox' setting in config.tt2 to 1.
1372
1373 New config.tt2 setting
1374 ++++++++++++++++++++++
1375 ctx.exclude_electronic_checkbox
1376
1377
1378 Expand unAPI API
1379 ^^^^^^^^^^^^^^^^
1380 Evergreen's unAPI support now includes access to many more
1381 record types. For example, the following URL would fetch
1382 bib 267 in MODS32 along with holdings, volume, copy,
1383 and record attribute information:
1384
1385 https://example.org/opac/extras/unapi?id=tag::U2@bre/267{holdings_xml,acn,acp,mra}&format=mods32
1386
1387 To access the new unAPI features, the unAPI ID should have the
1388 following form:
1389
1390   * +tag::U2@+
1391   * followed by class name, which may be
1392     * +bre+ (bibs)
1393     * +biblio_record_entry_feed+ (multiple bibs)
1394     * +acl+ (copy locations)
1395     * +acn+ (volumes)
1396     * +acnp+ (call number prefixes)
1397     * +acns+ (call number suffixes)
1398     * +acp+ (copies)
1399     * +acpn+ (copy notes)
1400     * +aou+ (org units)
1401     * +ascecm+ (copy stat cat entries)
1402     * +auri+ (located URIs)
1403     * +bmp+ (monographic parts)
1404     * +cbs+ (bib sources)
1405     * +ccs+ (copy statuses)
1406     * +circ+ (loan checkout and due dates)
1407     * +holdings_xml+ (holdings)
1408     * +mmr+ (metarecords)
1409     * +mmr_holdings_xml+ (metarecords with holdings)
1410     * +mmr_mra+ (metarecords with record attributes)
1411     * +mra+ (record attributes)
1412     * +sbsum+ (serial basic summaries)
1413     * +sdist+ (serial distributions)
1414     * +siss+ (serial issues)
1415     * +sisum+ (serial index summaries)
1416     * +sitem+ (serial items)
1417     * +sssum+ (serial supplement summaries)
1418     * +sstr+ (serial streams)
1419     * +ssub+ (serial subscriptions)
1420     * +sunit+ (serial units)
1421   * followed by +/+
1422   * followed by a record identifier (or in the case of
1423     the +biblio_record_entry_feed+ class, multiple IDs separated
1424     by commas)
1425   * followed, optionally, by limit and offset in square brackets
1426   * followed, optionally, by a comma-separated list of "includes"
1427     enclosed in curly brackets.  The list of includes is
1428     the same as the list of classes with the following addition:
1429     * +bre.extern+ (information from the non-MARC parts of a bib
1430       record)
1431    * followed, optionally, by +/+ and org unit; "-" signifies
1432      the top of the org unit tree
1433    * followed, optionally, by +/+ and org unit depth
1434    * followed, optionally, by +/+ and a path. If the path
1435      is +barcode+ and the class is +acp+, the record ID is taken
1436      to be a copy barcode rather than a copy ID; for example, in
1437      +tag::U2@acp/ACQ140{acn,bre,mra}/-/0/barcode+, +ACQ140+ is
1438      meant to be a copy barcode.
1439    * followed, optionally, by +&format=+ and the format in which the record
1440      should be retrieved. If this part is omitted, the list of available 
1441      formats will be retrieved. 
1442
1443
1444
1445
1446 New form/genre search and facet index
1447 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1448 The stock indexing definitions now include a search and facet index on the
1449 form/genre field (tag 655). This allows genre links in the public catalog
1450 record display to retrieve works in the same genre. The public catalog genre
1451 links will no longer display content from the 659 MARC fields. 
1452
1453 The genre facet will also display by default in the public catalog.  A partial
1454 reingest during upgrade is required to use this index.
1455
1456
1457
1458
1459 Limit number of facets retrieved during search
1460 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1461 Catalog search now limits the number of facets retrieved
1462 per defined facet field. Setting a limit is useful so that
1463 `open-ils.cstore backends don't end up needlessly consuming
1464 memory when fetching facets for a large result set; if a broad
1465 search retrieves over 10,000 author facets (say), even the most
1466 persistant user is not going to actually look at all of them. Fetching
1467 fewer facets can also slightly speed up generation of search results.
1468
1469 The limit is controlled by a new global flag, `search.max_facets_per_field`,
1470 whose label is "Search: maximum number of facet values to retrieve for
1471 each facet field".  The default limit value is 1,000, but lower values
1472 (e.g., 100) are perhaps even better for most catalogs.
1473
1474 Significant bug fixes
1475 ~~~~~~~~~~~~~~~~~~~~~
1476
1477 Add acquisitions cancel reason 85 for Baker & Taylor EDI
1478 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1479 Baker & Taylor send backs a quantity status code of 85
1480 when a line item is canceled when using EDI.  That code
1481 is now included in the system so those cancelations get 
1482 properly registered. 
1483
1484 Self-check printing
1485 ^^^^^^^^^^^^^^^^^^^
1486 Corrections were made to the self-check holds and fines printing
1487 functionality to so that the proper transactions can be printed.
1488 The change requires that the Self-Checkout Fines Receipt and
1489 Self-Checkout Holds Receipt action/trigger templates be updated
1490 in order to work properly. 
1491
1492 Miscellaneous
1493 ~~~~~~~~~~~~~
1494
1495 * Copy records in the "Concerto" test data set now have prices.
1496 * The web-based self-check interface now displays the patron
1497   information area only when a patron is logged in.
1498 * The progress page displayed by MARC Batch Edit is improved.
1499 * The public catalog now better handles the situation where
1500   a patron who does not have an email address registered in
1501   Evergreen tries to email a record.
1502
1503 Evergreen 2.10.0 bugs closed
1504 ----------------------------
1505
1506 * https://bugs.launchpad.net/bugs/838525[Bug 838525: Timestamp on dob can make date appear off by a day]
1507 * https://bugs.launchpad.net/bugs/963341[Bug 963341: Allow the JSPac and TPac to display both MFHD records and Serial Control/Alternate records,]
1508 * https://bugs.launchpad.net/bugs/1067823[Bug 1067823: tpac: genre links in record details page launch subject search]
1509 * https://bugs.launchpad.net/bugs/1164174[Bug 1164174: Add support for author/title series added entry]
1510 * https://bugs.launchpad.net/bugs/1175711[Bug 1175711: can't renew items on OPAC due to items being on Booking resource list]
1511 * https://bugs.launchpad.net/bugs/1197636[Bug 1197636: Email record detail does not check for email]
1512 * https://bugs.launchpad.net/bugs/1202742[Bug 1202742: Support alert/print message for transiting, non-active copies]
1513 * https://bugs.launchpad.net/bugs/1206936[Bug 1206936: money.transaction_billing_summary view displays incorrect billing_type and billing_note for the actual last transaction]
1514 * https://bugs.launchpad.net/bugs/1208613[Bug 1208613: Expand All button does not work past the 1st page when viewing a large picklist.]
1515 * https://bugs.launchpad.net/bugs/1229757[Bug 1229757: support distinct pop-up images for holds, transits, and hold transits]
1516 * https://bugs.launchpad.net/bugs/1240657[Bug 1240657: OpenILS::Application::Actor should check_perms for CREATE_CLOSED_DATE, not CREATE_CLOSEING]
1517 * https://bugs.launchpad.net/bugs/1251415[Bug 1251415: Use the juvenile setting when auto-removing juvenile flag.]
1518 * https://bugs.launchpad.net/bugs/1275118[Bug 1275118: Holds history displays canceled holds as active]
1519 * https://bugs.launchpad.net/bugs/1312699[Bug 1312699: Editable Checkout History]
1520 * https://bugs.launchpad.net/bugs/1319998[Bug 1319998: money.materialized_summary_billing_del() ADDS to balance_owed]
1521 * https://bugs.launchpad.net/bugs/1333254[Bug 1333254: EDI invoices automatically expend debits]
1522 * https://bugs.launchpad.net/bugs/1367926[Bug 1367926: Add support for (nearly) direct access to the full unapi backend]
1523 * https://bugs.launchpad.net/bugs/1370694[Bug 1370694: Selfcheck "Print List" for Holds view does not work]
1524 * https://bugs.launchpad.net/bugs/1371647[Bug 1371647: config.marc21_ff_pos_map needs an audit]
1525 * https://bugs.launchpad.net/bugs/1375043[Bug 1375043: Support for in-A/T telephony configuration]
1526 * https://bugs.launchpad.net/bugs/1380709[Bug 1380709: invoice print amounts-per-fund uses wrong value when item price varies]
1527 * https://bugs.launchpad.net/bugs/1384740[Bug 1384740: Add authority records support to marc stream importer (Connexion)]
1528 * https://bugs.launchpad.net/bugs/1391282[Bug 1391282: Default Action Trigger Templates  Updates]
1529 * https://bugs.launchpad.net/bugs/1392396[Bug 1392396: Wishlist: Action Trigger for new user creation]
1530 * https://bugs.launchpad.net/bugs/1402018[Bug 1402018: Acq Copy location UI scoped to registered workstation]
1531 * https://bugs.launchpad.net/bugs/1402770[Bug 1402770: Add column picker option for number of holds in item context]
1532 * https://bugs.launchpad.net/bugs/1406786[Bug 1406786: Merge parts functionality fails to preserve copy_part mapping]
1533 * https://bugs.launchpad.net/bugs/1422802[Bug 1422802: Parts need to be more visible on the place holds screen]
1534 * https://bugs.launchpad.net/bugs/1422932[Bug 1422932: TPAC: Holds history pager typo]
1535 * https://bugs.launchpad.net/bugs/1429268[Bug 1429268: Credit card payment fails on NULL mailing address]
1536 * https://bugs.launchpad.net/bugs/1452950[Bug 1452950: Angularize the patron editor]
1537 * https://bugs.launchpad.net/bugs/1454871[Bug 1454871: KPAC Hold Notifications - SMS]
1538 * https://bugs.launchpad.net/bugs/1454884[Bug 1454884: Hold placed on grouped metabib result displays wrong title]
1539 * https://bugs.launchpad.net/bugs/1464765[Bug 1464765: evergreen.lpad_number_substrings doesn't handle internal substring matches properly]
1540 * https://bugs.launchpad.net/bugs/1466173[Bug 1466173: Wishlist: Selfcheck Hide UI Elements until patron auth]
1541 * https://bugs.launchpad.net/bugs/1466990[Bug 1466990: Detailed search results shows parts for items that dont have parts]
1542 * https://bugs.launchpad.net/bugs/1468422[Bug 1468422: Improve Password Management and Authentication]
1543 * https://bugs.launchpad.net/bugs/1470957[Bug 1470957: Items are incorrectly sorting when using the Sort By Publication date feature]
1544 * https://bugs.launchpad.net/bugs/1474051[Bug 1474051: Avoid storing partial credit card payment info]
1545 * https://bugs.launchpad.net/bugs/1474455[Bug 1474455: Fixed navigation menu for the web client]
1546 * https://bugs.launchpad.net/bugs/1474566[Bug 1474566: Credit card API amount paid rounding error.]
1547 * https://bugs.launchpad.net/bugs/1482336[Bug 1482336: create_release_notes.sh include .adoc files]
1548 * https://bugs.launchpad.net/bugs/1483500[Bug 1483500: evergreen.lowercase needs test]
1549 * https://bugs.launchpad.net/bugs/1483506[Bug 1483506: public.first_agg needs test]
1550 * https://bugs.launchpad.net/bugs/1483508[Bug 1483508: public.text_concat needs tests]
1551 * https://bugs.launchpad.net/bugs/1486151[Bug 1486151: Modifying password regular expression in Library Settings Editor can cause helper on the Update Password page to be invalid]
1552 * https://bugs.launchpad.net/bugs/1486294[Bug 1486294: Add acquisitions data to the Concerto dataset]
1553 * https://bugs.launchpad.net/bugs/1486592[Bug 1486592: Copies in concerto data should have prices]
1554 * https://bugs.launchpad.net/bugs/1487527[Bug 1487527: TPAC: Provide shortcut for changing search scope]
1555 * https://bugs.launchpad.net/bugs/1491571[Bug 1491571: When circ.password_reset_request_requires_matching_email setting is true, email case must match in addition to content]
1556 * https://bugs.launchpad.net/bugs/1492793[Bug 1492793: Support for PostgreSQL Application Name Connection Options]
1557 * https://bugs.launchpad.net/bugs/1496837[Bug 1496837: xml-related test is invalid]
1558 * https://bugs.launchpad.net/bugs/1499123[Bug 1499123: Ability to Ignore Certain Standing Penalties Within a Proximity to the Patron's Home Library]
1559 * https://bugs.launchpad.net/bugs/1501471[Bug 1501471: fetching OU settings in batch can be made faster]
1560 * https://bugs.launchpad.net/bugs/1501516[Bug 1501516: Indicate whether a lineitem is fully paid/invoiced in PO list]
1561 * https://bugs.launchpad.net/bugs/1502152[Bug 1502152: Trap Warnings in marc_export for better error reporting]
1562 * https://bugs.launchpad.net/bugs/1504615[Bug 1504615: OPAC: Suggest record detail more useful when sorted by parts]
1563 * https://bugs.launchpad.net/bugs/1505286[Bug 1505286: set limit on facets retrieved during search]
1564 * https://bugs.launchpad.net/bugs/1506534[Bug 1506534: valid_z3950_attr_type check constraint can cause errors during pg_restore]
1565 * https://bugs.launchpad.net/bugs/1507845[Bug 1507845: Correct search engine optimization -- allow robots to crawl, but not index, results]
1566 * https://bugs.launchpad.net/bugs/1508477[Bug 1508477: browser client: hotkeys don't work if an input element has focus]
1567 * https://bugs.launchpad.net/bugs/1509479[Bug 1509479: infinite loop when parsing modified unclosed phrase search query]
1568 * https://bugs.launchpad.net/bugs/1510641[Bug 1510641: Cannot print PO without lineitems]
1569 * https://bugs.launchpad.net/bugs/1513554[Bug 1513554: It is possible to delete acq.cancel_reasons that are used by the system]
1570 * https://bugs.launchpad.net/bugs/1516022[Bug 1516022: reporting source for copy/hold ratio at pickup library and descendants]
1571 * https://bugs.launchpad.net/bugs/1516104[Bug 1516104: Wishlist: Additional Acq Toolbar Options]
1572 * https://bugs.launchpad.net/bugs/1516707[Bug 1516707: Relevance ranking deteriorates when phrases are added to search]
1573 * https://bugs.launchpad.net/bugs/1516757[Bug 1516757: SIP Date of Birth off by one day / parsed as UTC]
1574 * https://bugs.launchpad.net/bugs/1516867[Bug 1516867: HTML reports should be dynamically sortable]
1575 * https://bugs.launchpad.net/bugs/1519055[Bug 1519055: Simple checkbox to exclude electronic resources from search results]
1576 * https://bugs.launchpad.net/bugs/1519465[Bug 1519465: Purchase Orders with spaces in the name cause problems with EDI processing]
1577 * https://bugs.launchpad.net/bugs/1519911[Bug 1519911: Typo in seed data for hold cancel notification action triggers]
1578 * https://bugs.launchpad.net/bugs/1519925[Bug 1519925: Add UPC search to MARC Federated Search -  Native Evergreen option]
1579 * https://bugs.launchpad.net/bugs/1522538[Bug 1522538: Unexpected Journal Title Search Results when using second or third Search Input in Advanced Search]
1580 * https://bugs.launchpad.net/bugs/1522604[Bug 1522604: webclient: Red font to highlight Lost items in patron summary extends to Non-Cataloged label]
1581 * https://bugs.launchpad.net/bugs/1526543[Bug 1526543: Cannot disable password reset in TPAC]
1582 * https://bugs.launchpad.net/bugs/1526546[Bug 1526546: Parts do not sort correctly on Holdings Maintenance screen]
1583 * https://bugs.launchpad.net/bugs/1526547[Bug 1526547: Overdues adjusted via lost (or long overdue) processing get an incorrect note ("VOIDED FOR BACKDATE")]
1584 * https://bugs.launchpad.net/bugs/1527342[Bug 1527342: Maintain patron reading history in a dedicated table.]
1585 * https://bugs.launchpad.net/bugs/1528596[Bug 1528596: Another untrapped marc_export warning]
1586 * https://bugs.launchpad.net/bugs/1531976[Bug 1531976: Triggered Events UI not loading after visiting Message Center UI and vice-versa]
1587 * https://bugs.launchpad.net/bugs/1533329[Bug 1533329: Selectively disallow opt-in based on patron's home library]
1588 * https://bugs.launchpad.net/bugs/1533331[Bug 1533331: evergreen.protect_reserved_rows_from_delete() trigger function returning error]
1589 * https://bugs.launchpad.net/bugs/1538697[Bug 1538697: webclient: copy record does not save when changing stat cat entries]
1590 * https://bugs.launchpad.net/bugs/1539088[Bug 1539088: marc export should only print "Waiting for Input" when running interactively]
1591 * https://bugs.launchpad.net/bugs/1539776[Bug 1539776: webclient: Wrapping improvements for vol / copy editor]
1592 * https://bugs.launchpad.net/bugs/1544723[Bug 1544723: Add webstaff to update_pofiles]
1593 * https://bugs.launchpad.net/bugs/1545178[Bug 1545178: two dead methods for dealing with closed dates should be removed]
1594 * https://bugs.launchpad.net/bugs/1545226[Bug 1545226: MARC Batch Editor summary table html problems]
1595 * https://bugs.launchpad.net/bugs/1546125[Bug 1546125: Print Templates -&gt; Save Locally not working]
1596 * https://bugs.launchpad.net/bugs/1548143[Bug 1548143: Add Parts Support to Vandelay Item Import]
1597 * https://bugs.launchpad.net/bugs/1548147[Bug 1548147: Quick Export Feature for Vandelay Queues]
1598 * https://bugs.launchpad.net/bugs/1548869[Bug 1548869: KPAC - hold results screen not showing title]
1599 * https://bugs.launchpad.net/bugs/1549393[Bug 1549393: AddedContent: Invalid ISBN's are sent to Content Cafe as blank string]
1600 * https://bugs.launchpad.net/bugs/1550495[Bug 1550495: EDI Default Cancel Reason for Baker &amp; Taylor not included: Code 85]
1601 * https://bugs.launchpad.net/bugs/1551447[Bug 1551447: Selfcheck: Printing Fines Prints All Open Transactions]
1602 * https://bugs.launchpad.net/bugs/1552060[Bug 1552060: Persistent login no longer working in OPAC]
1603 * https://bugs.launchpad.net/bugs/1553813[Bug 1553813: Browser patron editor field validation and permission checks]
1604 * https://bugs.launchpad.net/bugs/1556339[Bug 1556339: API attempts to use nonexistent user_visible_circs method]
1605 * https://bugs.launchpad.net/bugs/1557525[Bug 1557525: Release Notes Omission]
1606 * https://bugs.launchpad.net/bugs/1557621[Bug 1557621: Verify password API fails on barcode; returns success on deleted users]
1607 * https://bugs.launchpad.net/bugs/1557683[Bug 1557683: Missing semicolon in 0953.function.unapi-bre.external-includes.sql]
1608
1609 Evergreen 2.10.0 Acknowledgments
1610 --------------------------------
1611 The Evergreen project would like to thank the following 
1612 individuals who contributed code, documentations patches and
1613 tests to this release of Evergreen:
1614
1615  * Thomas Berezansky
1616  * Adam Bowling
1617  * Jason Boyer
1618  * Kate Butler
1619  * Steven Callender
1620  * Steven Chan
1621  * Galen Charlton
1622  * Mark Cooper
1623  * Jeff Davis
1624  * Martha Driscoll
1625  * Bill Erickson
1626  * Jason Etheridge
1627  * Blake Henderson
1628  * Pasi Kallinen
1629  * Jake Litrell
1630  * Kathy Lussier
1631  * Terran McCanna
1632  * Christine Morgan
1633  * Dan Pearl
1634  * Michael Peters
1635  * Jennifer Pringle
1636  * Mike Rylander
1637  * Dan Scott
1638  * Chris Sharp
1639  * Ben Shum
1640  * Remington Steed
1641  * Jason Stephenson
1642  * Josh Stompro
1643  * Yamil Suarez
1644  * Dan Wells
1645  * Bob Wicksall
1646
1647 We would also like to thank the following individuals who
1648 tested and signed off on patches:
1649
1650  * Christine Burns
1651  * Andrea Neiman
1652  * Erica Rohlfs
1653
1654 We would also like to thank the following organizations who
1655 commissioned developments in this release of Evergreen:
1656
1657  * Linn Libraries Consortium
1658  * King County Library System
1659  * MassLNC
1660
1661 We also thank the following organizations whose employees contributed
1662 to this release:
1663
1664  * BC Libraries Coooperative
1665  * Berklee College of Music
1666  * Bibliomation
1667  * Calvin College
1668  * CW/MARS
1669  * Emerald Data
1670  * Equinox Software
1671  * Georgia Public Library Service
1672  * Indiana State Library
1673  * Kent County Public Library
1674  * King County Library System
1675  * Lake Agassiz Regional Library
1676  * Laurentian University
1677  * MassLNC
1678  * MOBIUS
1679  * MVLC
1680  * NOBLE
1681  * Rodgers Memorial Library
1682  * Sigio
1683
1684 We regret any omissions.  If a contributor has been inadvertantly
1685 missed, please open a bug at http://bugs.launchpad.net/evergreen/
1686 with a correction.
1687