]> git.evergreen-ils.org Git - Evergreen.git/blob - docs/RELEASE_NOTES_3_10.adoc
LP1615805 No inputs after submit in patron search (AngularJS)
[Evergreen.git] / docs / RELEASE_NOTES_3_10.adoc
1 = Evergreen 3.10.0 Release Notes =
2 :toc:
3 :numbered:
4 :toclevels: 3
5
6 == Upgrade notes ==
7
8 The database update includes a partial reingest.
9
10 == New Features ==
11
12
13 ===  Acquisitions ===
14
15 ==== Further Angularization of Acquisitions Interfaces ====
16
17 The following acquisitions interfaces were rewritten in Angular:
18
19  * Purchase Orders and Selection Lists
20  * Line Item management, including
21    ** Receiving and claiming
22    ** Creation of line item items singly and in batch
23  * Load MARC Order Records
24
25 Improvements over the previous interfaces include:
26
27  * The line item table can now be sorted and filtered
28  * New settings to control the owning library that is
29    applied to auto-created line item items.
30
31 ==== Support for Advanced Shipment Notices in Acquisitions ====
32
33 This version of Evergreen supports DESADV EDI messages.  These messages are
34 created by vendors when they pack and ship items, and contain:
35
36 * A list of dispatched POs, lineitems, and the number of items per lineitem.
37 * A package-level barcode (e.g. https://en.wikipedia.org/wiki/Serial_shipping_container_code) that represents the package as a whole.
38
39 Staff can scan that package-level barcode to retrieve information on every
40 item in the package, including an option to auto-receive every item in the box.
41
42 ==== New column in General Acquisitions Search ====
43
44 The general acquisitions search grid now has a column
45 for purchase order ID.
46
47 ==== New Permission for Fund Rollovers ====
48
49 A new permission, `ADMIN_FUND_ROLLOVER`, is added to control access
50 to the fund rollover function. This allows having some users be able
51 to manage funds without being to invoke the rollover action, as
52 rollovers can be hard to undo.
53
54 During upgrade, any permission group with the `ADMIN_FUND` permission
55 will get the new `ADMIN_FUND_ROLLOVER` permission to avoid surprises.
56 Consequently, an Evergreen administrator who wishes to lock down
57 access to the feature should follow up by removing the new permission
58 where necessary.
59
60 In new databases, `ADMIN_FUND_ROLLOVER` is granted only to the stock
61 Acquisitions Administrators permission group.
62
63 ==== Inactive funds can no longer make allocations or transfers ====
64
65 In the Funds Administration page, if a fund is not marked as
66 active, the "Create allocation" and "Transfer money" options
67 will no longer be available.
68
69 In the occassional cases where these operations are necessary,
70 you can edit the fund to mark it active, perform your financial
71 operations, then mark it inactive again.
72
73 === Administration ===
74
75 ==== Geosort feature can now use Bing Maps API ====
76
77 The API can be configured at *Server Administration*
78 -> *Geographic Location Service*.
79
80 ==== Refresh Time for Carousel ====
81
82 This adds the time (rather than just the date) to the 
83 Last Refresh Time column of the Local Administration > 
84 Carousels grid. 
85
86 ==== Hours of Operation Note field ====
87
88 Adds a note field to each day's hours to record split hours or service related notes. The notes appear enclosed in parentheses next to each day's hours when viewing a library's hours in the Bootstrap OPAC and TPAC
89
90 ==== HTML email ====
91
92 Administrators can now configure action triggers to send HTML-formatted
93 email.  Evergreen continues to send emails in plain-text by default, but
94 you can now configure an email template to send as HTML by adding the appropriate
95 header to the email.  For example: Content-Type: text/html;charset=utf-8
96
97 ==== Match Quality Ratio Option Added to marc_stream_importer.pl ====
98
99 Command line options have been added to the marc_stream_importer.pl
100 support script to specify the match quality ratio used when matching
101 bibliographic or authority records for overlay:
102
103 * --bib-match-quality-ratio
104 * --auth-match-quality-ratio
105
106 These options specify the match quality ratio, as a decimal number
107 (i.e. 1.0), for overlay of records with the overlay on 1 match
108 options.  They correspond to the similar options in the staff client
109 Vandelay import.
110
111 ==== Configuring sign-on to OpenAthens ====
112 :toc:
113
114 ===== Purpose =====
115
116 If your institution uses OpenAthens, you can configure Evergreen to sign 
117 patrons in to OpenAthens using their Evergreen account. This will let them 
118 connect to OpenAthens resources seamlessly once they have logged in to 
119 Evergreen. Patrons are assigned an OpenAthens identity dynamically based 
120 on their Evergreen login, and do not need accounts created manually in 
121 OpenAthens.
122
123 ===== Registering your Evergreen installation with the OpenAthens service =====
124
125 Using your OpenAthens administrator account at https://admin.openathens.net/, 
126 complete the following steps:
127
128 . Register a local authentication connection for Evergreen:
129   .. Go to *Management* -> *Connections*.
130   .. Under *Local authentication* click *Create*.
131   .. In the wizard that appears, select *Evergreen* as the local authentication 
132   system type (or *API* if Evergreen is not listed) and click *Configure*.
133   .. For *Display name*, enter the name of your Evergreen portal that your 
134   patrons will be familiar with. They will need to be able to recognise and 
135   select this name from a list of sign-in options on OpenAthens.
136   .. For *Callback URL* enter *https://<HOSTNAME>/eg/opac/sso/openathens* where 
137   <HOSTNAME> is the public hostname of your Evergreen installation, and click 
138   *Save*. (If you have installed Evergreen somewhere other than /eg, modify the
139   URL accordingly.)
140   .. On the details page that appears, take a copy of the *Connection ID* and 
141   *Connection URI* that have been generated. You will need these when 
142   configuring Evergreen.
143 . Generate an API key:
144   .. Go to *Management* -> *API keys* and click *Create*.
145   .. For *Name*, enter 'Evergreen' or whatever name you use for your Evergreen 
146   portal internally, and click *Save*.
147   .. Take a copy of the 36-character key that has been generated. You will need 
148   this when configuring Evergreen.
149
150 Full OpenAthens documentation for local authentication API connections is 
151 available at http://docs.openathens.net/display/public/MD/API+connector.
152
153 ===== Configuring Evergreen =====
154
155 OpenAthens sign-on is configured in the staff client under *Local 
156 Administration* -> *OpenAthens Sign-on*. To make a connection, select *New 
157 Sign-on to OpenAthens*, and set the values as follows:
158
159 * *Owner* - the organisation within your library hierarchy that owns the 
160 connection to OpenAthens. If your whole consortium has signed up to OpenAthens 
161 as a single customer, then you would select the top-level. If only one 
162 regional library system or branch is the OpenAthens customer, select that. 
163 Whichever organisation you select, the OpenAthens connection will take effect 
164 for all libraries below it in your organisational hierarchy. A single 
165 OpenAthens sign-on configuration normally equates to a single *domain* in the 
166 OpenAthens service. If in doubt refer to your OpenAthens account manager or 
167 implementation partner.
168 * *Active* - Enable this connection (enabled by default). N.B. Evergreen
169   does not support more than one active connection to OpenAthens at a time per 
170   organisation. If more than one connection is added per organisation, 
171   Evergreen will use only the _first_ connection that has *Active* enabled.
172 * *API key* - the 36-character OpenAthens *API key* that was generated in step 
173   2 above.
174 * *Connection ID* - the numerical *Connection ID* that was generated for the 
175   OpenAthens local authentication connection in step 1 above.
176 * *Connection URI* - the *Connection URI* that was generated for the 
177   OpenAthens local authentication connection in step 1 above.
178 * *Auto sign-on* - controls _when_ patrons are signed on to OpenAthens:
179   ** *enabled* (recommended) - As soon as a patron logs in to Evergreen, they 
180   are signed in to OpenAthens. This happens via a quick redirect that the user 
181   should not notice.
182   ** *disabled* - The patron is not signed in to OpenAthens to start with. When 
183   they first access an OpenAthens-protected resource, they will need to search 
184   for your institution at the OpenAthens log-in page and choose your Evergreen 
185   portal as the sign-in method (they will see the name you entered as the 
186   *Display name* in step 1 above). Evergreen will then prompt for log-in if 
187   they have not already logged in. After that, they are signed in to OpenAthens 
188   and OpenAthens redirects them to the resource.
189 * *Auto sign-out* - controls whether the patron is signed out of OpenAthens 
190   when they log out of Evergreen. If *enabled* the patron will be sent to the 
191   OpenAthens sign-out page when they log out of Evergreen. You can optionally 
192   configure the OpenAthens service to send them back to your home page again 
193   after this; the setting can be found at https://admin.openathens.net/ under 
194   *Preferences* -> *Domain* -> *After sign out*.
195 * *Unique identifier field* - controls which attribute of patron accounts is 
196   used as the unique identifier in OpenAthens. The supported values are 'id' 
197   and 'usrname', but you should leave this set to the default value of 'id' 
198   unless you have a reason to do otherwise. It is important that this attribute 
199   does not change during the lifetime of a patron account, otherwise they would 
200   lose any personalised settings they have saved on third party resources. It 
201   is also important that you do not re-use old patron accounts for new users, 
202   otherwise a new user could see personalised settings saved by an old user.
203 * *Display name field* - controls which attribute of patron accounts is 
204   displayed in the OpenAthens portal at https://admin.openathens.net/. (This 
205   is where you can see which accounts have been used, and what use patrons are 
206   making of third party resources.) The supported values are 'id', 'usrname' 
207   and 'fullname'. Whichever you choose, OpenAthens will only use it within 
208   your portal view; it won't be released to third-party resources.
209 * *Release X* - one setting for each of the attributes that it is possible to 
210   release to OpenAthens. Depending on your user privacy policy, you can 
211   configure any of these attributes to be released to OpenAthens as part of 
212   the sign-on process. None are enabled by default. OpenAthens in turn doesn't 
213   store or release any of these attributes to third party resources, unless 
214   you configure that separately in the OpenAthens portal. You have to 
215   configure this in two stages. Firstly, mapping Evergreen attributes to 
216   OpenAthens attributes, and secondly releasing OpenAthens attributes to third 
217   party resources. See the OpenAthens documenation pages at 
218   http://docs.openathens.net/display/public/MD/Attribute+mapping and 
219   http://docs.openathens.net/display/public/MD/Attribute+release. You will need 
220   to know the exact names of the attributes that are released. These are listed 
221   in the following table:
222
223 |===
224 |Setting|Attribute released|Description
225
226 |Release prefix
227 |prefix
228 |the patron's prefix, overriden by the preferred prefix if that is set
229
230 |Release first name
231 |first_given_name
232 |the patron's first name, overriden by the preferred first name if that is set
233
234 |Release middle name
235 |second_given_name
236 |the patron's middle name, overriden by the preferred middle name if that is set
237
238 |Release surname
239 |family_name
240 |the patron's last name, overriden by the preferred last name if that is set
241
242 |Release suffix
243 |suffix
244 |the patron's suffix, overriden by the preferred suffix if that is set
245
246 |Release email
247 |email
248 |the patron's email address
249
250 |Release home library
251 |home_ou
252 |the _shortcode_ of the patron's home library (e.g. 'BR1' in the Concerto 
253 sample data set)
254
255 |Release barcode
256 |barcode
257 |the patron's barcode
258 |===
259
260 Click 'Save' to finish creating the connection. (If you can't see the 
261 connection you just created for a branch library, enable the "+ Descendants" 
262 option.)
263
264 ===== Network access - server =====
265
266 As part of the sign-on process, Evergreen makes a connection to the OpenAthens
267 service to transfer details of the user that is signing on. This data does not
268 go via the user's browser, to avoid revealing the private API key and to avoid
269 the risk of spoofing. You need to open up port 443 outbound in your firewall,
270 from your Evergreen server to login.openathens.net.
271
272 ===== Network access - web client =====
273
274 If you restrict internet access for your web client machines, you need to open
275 up port 443 outbound in your firewall, from your web clients to the following
276 three domains:
277
278 * connect.openathens.net
279 * login.openathens.net
280 * wayfinder.openathens.net
281
282 ===== Admin permissions =====
283
284 To delegate OpenAthens configuration to other staff users, assign the 
285 *ADMIN_OPENATHENS* permission.
286
287 ==== Optionally allow patrons to renew after hitting fine maximum ====
288
289 When a patron hits the max fine limit, a standing penalty is applied to their account. By default, that penalty (PATRON_EXCEEDS_FINES)
290 is configured to block renewals.
291
292 This release adds a new org unit setting, _circ.permit_renew_when_exceeds_fines_.  If enabled for a particular org unit, renewals are
293 permitted (as long as all other circulation eligibility criteria are met).
294
295 ==== Optionally remove traditional catalog from menu ====
296
297 Libraries that have fully migrated to the Angular staff catalog
298 may optionally hide the "Staff Catalog (Traditional)" menu
299 options.  To do so, in the Library Settings Editor, set the
300 "ui.staff.traditional_catalog.enabled" setting to False.
301
302 After changing the setting, you will need to log out and log
303 back in to see the changes to the menu.
304
305 === Architecture ===
306
307 ==== (Developer-focused) Use ESLint for eg2 ====
308
309 The `eg2` Angular application now uses ESLint rather than TSLint for
310 source code linting. This is motivated by the deprecation of TSLint
311 by the Angular CLI, but ESLint also offer some improvements.
312
313 In particular, ESLint checks the HTML templates in addition to the
314 TypeScript code. For example, it will catch uses of `==` in the
315 templates when `===` is preferred.
316
317 The primary ESLint rules applied to the project are configured in
318 `Open-ILS/src/eg2/.eslintrc.json`. To override them for specific
319 directories, `.eslintrc` files can be used. An example of this
320 is `Open-ILS/src/eg2/src/app/share/.eslintrc`, which turns off
321 the `angular-eslint/no-output-on-prefix` check that discourages
322 using `onFoo` as the name of `@Output()` properties. This rule
323 is now enforced in most of `eg2`, but it was decided not to immediately
324 mandate for shared components.
325
326 The command to run the lint checks remains the same: from
327 `Open-ILS/src/eg2/`, run `ng lint`.
328
329 ==== Operating System Requirements ====
330
331 Evergreen 3.10 now supports installation on Ubuntu 22.04 (Jammy Jellyfish).
332
333 This release removes support for Debian Stretch and Ubuntu 18.04 (Bionic Beaver).
334
335 === Cataloging ===
336
337 ==== Record Note Merges ====
338
339 During a merge of bibliographic records notes will now merge and a
340 notation on each added that they were originally from another record.
341 A note is also added that the merge was performed.
342
343 === Circulation ===
344
345 ==== Experimental Angular Circulation Interfaces ====
346
347 This Evergreen release includes new, experimental versions of many
348 circulation interfaces.  To enable these interfaces:
349
350 . In the Library Settings Editor, enable the setting called
351 _Enable Angular Circulation Menu_.
352 . Add the _ACCESS_ANGULAR_CIRC_ permission to any users who
353 will be testing the experimental interfaces.
354
355 These interfaces are experimental, and should not be used for production
356 work.  Please report any issues with the interfaces at
357 https://bugs.launchpad.net/evergreen
358
359 ==== New Patrons with Negative Balances interface ====
360
361 The _Patrons with Negative Balances_ interface has been re-implemented
362 in Angular.
363
364 ==== OPAC-visible statisitical categories are now visible in the OPAC ====
365
366 This release restores a previously available feature: the ability to 
367 display statistical categories (stat cats) in the OPAC.  If an
368 item stat cat has "OPAC Visibility" set to true, its values will
369 display in the record page's item table, underneath the call number.
370 If a patron stat cat has "OPAC Visibility" set to true, its values
371 will display in the patron's account under Preferences ->
372 Personal Information (below the account expiration date).
373
374 Since these values have not been visible for some time, Evergreen
375 libraries may wish to review them before making them public.  To
376 set all stat cats to private, so that OPAC visibility can be
377 restored on a case-by-case basis after review, you can use the
378 following SQL:
379
380 [,sql]
381 ----
382 -- Item stat cats
383 UPDATE asset.stat_cat SET opac_visible=false WHERE opac_visible=true;
384
385 -- Patron stat cats
386 UPDATE actor.stat_cat SET opac_visible=false WHERE opac_visible=true;
387 ----
388
389 ==== Renewal Due Date Extended to Cover Lost Time ====
390
391 When an item is renewed before it's due date, libraries now have the option
392 to extend the renewal's due date to include any time lost from the early 
393 renewal.
394
395 For example, a 14 day checkout renewed after 12 days will result in a due date
396 on the renewal of 14 days plus 2 days to cover the lost time.
397
398 ===== Settings =====
399
400 Two new fields are available under Admin => Local Administration => 
401 Circulation Policies.
402
403 *Early Renewal Extends Due Date*
404
405 Enables this new feature for a circulation policy.
406
407 *Early Renewal Minimum Duration Interval*
408
409 Specifies the amount of time a circulation has to be checked out before a 
410 renewal will result in an extended due date.
411
412 For example, if you wanted to support due date extensions on 14-day checkout
413 renewals, but only if the item has been checked out at least 8 days, you 
414 would enter "8 days" for the value of this field.
415
416 If no value is set for a given matchpoint that supports renewal extension, 
417 all renewals using that matchpoint will be eligible.
418
419 ==== Override All Option when Placing Multiple Staff Holds ====
420
421 When placing multiple holds in the Angular Staff Catalog, staff users with permission to override the failed holds will see an Override All button which will perform all overrides at once.
422
423 Overriding each failed hold individually remains an option.
424
425 ==== Source library addresses now available on transit slips ====
426
427 Transit slip templates previously could include the address of
428 the library that the item is being transitted _to_.  With this
429 release, the address of the library the item is being transitted
430 _from_ is also available.
431 This change applies to both the Hold Transit Slip and the Transit
432 Slip templates.
433
434 ==== Courses can be un-archived ====
435
436 Course reserves staff can now un-archive a course that was previously archived, either from
437 its course page, or from the course list.
438
439 Un-archiving a course makes it active again.  Users with public roles in the course (such
440 as instructors) remain associated with the course.  Non-public users (such as students)
441 are removed.
442
443 === OPAC ===
444
445 ==== Additional trailing punctuation removed from certain fields ====
446
447 MarcXML facet, display, and browse fields will undergo some extra
448 cleanup before displaying to a user.  Of particular note for any
449 title fields that match these criteria, ending `/`, `:`, `;`, and
450 `=` will be removed.
451
452 This change does not affect MODS fields.  You can check if a
453 particular field uses MarcXML or MODS in Server Administration
454 -> MARC Search/Facet Fields by consulting the Format column.
455
456
457 === Miscellaneous ===
458
459 * The Field Documentation interface (under Local Administration) has
460   been ported to Angular with an org selector as an additional filter.
461 * The Pending Users and Bucket View grids in the User Buckets interface
462   now includes a column for the patron's balance owed. (LP#1980257)
463 * Patron Interface Gets a New Penalty Refresh Action. (LP#1823225)
464 * A new workstation setting optionally allows the full library name to be
465   added to the Angular Org Unit Selector. (LP#1771636)
466 * The tabs on the Claiming Administration page have been reordered to
467   Claim Policies, Claim Policy Actions, Claim Event Types, and Claim
468   Types. This reflects the fact that Claim Types tend to be configured
469   once and are not typically adjusted when setting up a new claim
470   policy. (LP#1947045)
471 * Links in the staff catalog summary area now open in a new tab. (LP#1953692)
472 * The Item Status list view now includes an optional column for
473   Total Circulations. (LP#1964629)
474 * The credit card payment approval code is now available as a column in
475   the bill history payments table in the patron record. (LP#1818303)
476 * The group member details grid now contains columns for preferred names.
477   (LP#1951996)
478 * The patron profile name is now available to the Hold Shelf Slip
479   print template as `patron.profile.name`. (LP#1724032)
480 * Removed the Message Center from the Patron -> Other Menu (deprecated),
481   added action for unarchiving Notes, and added confirmation dialogs
482   for Remove Note, Archive Note, and Unarchive Note. (LP#1977877)
483 * Curbside request notes and user messages are now purged when a user
484   record is deleted. (LP#1934162)
485 * If the patron record has a preferred name set, the SIP server now
486   returns it in response to patron lookups. (LP#1984114)
487 * The label and description of the acq.fund.allow_rollover_without_money
488   library setting are updated for greater clarity (LP#1982031)
489 * The Cash Reports interface (under Local Administration) is ported to
490   Angular.
491
492 === Acknowledgments ===
493
494 The Evergreen project would like to acknowledge the following
495 organizations that commissioned developments in this release of
496 Evergreen:
497
498 * CW MARS
499 * Evergreen Community Development Initiative
500 * Equinox Open Library Initiative
501 * King County Library System
502
503 We would also like to thank the following individuals who contributed
504 code, translations, documentations patches and tests to this release of
505 Evergreen:
506
507 * John Amundson
508 * Zavier Banks
509 * Jason Boyer
510 * Dan Briem
511 * Christine Burns
512 * Steven Callender
513 * Galen Charlton
514 * Julian Clementson
515 * Garry Collum
516 * Dawn Dale
517 * Jeff Davis
518 * Bill Erickson
519 * Jason Etheridge
520 * Ruth Frasur
521 * Blake Graham Henderson
522 * Rogan Hamby
523 * Elaine Hardy
524 * Kyle Huckins
525 * Linda Jansova
526 * Stephanie Leary
527 * Shula Link
528 * Tiffany Little
529 * Mary Llewellyn
530 * Llewellyn Marshall
531 * Terran McCanna
532 * Gina Monti
533 * Christine Morgan
534 * Michele Morgan
535 * Susan Morrison
536 * Andrea Buntz Neiman
537 * Jennifer Pringle
538 * Erica Rohlfs
539 * Mike Risher
540 * Mike Rylander
541 * Jane Sandberg
542 * Lindsay Stratton
543 * Chris Sharp
544 * Jason Stephenson
545 * Jennifer Weston
546 * Beth Willis
547 * Carol Witt
548 * Jessica Woolford
549
550 We also thank the following organizations whose employees contributed
551 patches:
552
553 * BC Libraries Coop
554 * Bibliomation
555 * Catalyte
556 * CW MARS
557 * Equinox Open Library Initiative
558 * Georgia Public Library Service
559 * Greater Clarks Hill Regional Library
560 * Kenton County Library
561 * King County Library System
562 * Lake Agassiz Regional Library
563 * Linn Benton Community College
564 * MOBIUS
565 * NC Cardinal
566 * NOBLE
567 * Princeton University
568 * Sigio
569 * Westchester Library System
570
571 We regret any omissions.  If a contributor has been inadvertently
572 missed, please open a bug at http://bugs.launchpad.net/evergreen/
573 with a correction.
574