LP#1849208 - Add PostgreSQL 10 Makfile.install targets
[working/Evergreen.git] / docs / RELEASE_NOTES_2_4.adoc
1 Evergreen 2.4.0 Release Notes
2 =============================
3 :toc:
4 :numbered:
5
6 Upgrade notes
7 -------------
8
9 Custom Toolbar Permissions
10 ~~~~~~~~~~~~~~~~~~~~~~~~~~
11 With the addition of more granular permissions for configuring a custom
12 toolbars, the ADMIN_TOOLBAR permission alone will not allow users to 
13 configure a custom toolbar. This permission must now be used in conjunction
14 with one or more of the following permissions:
15
16 * ADMIN_TOOLBAR_FOR_ORG
17 * ADMIN_TOOLBAR_FOR_USER
18 * ADMIN_TOOLBAR_FOR_WORKSTATION
19
20 New features
21 ------------
22
23 Acquisitions
24 ~~~~~~~~~~~~
25
26 Acquisitions Inline Item Detail View
27 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
28
29 Acquisitions selection lists and purchase order interfaces contain a new link
30 beside each lineitem which, when clicked, creates an inline grid of copies
31 linked to the lineitem.  The grid contains the same information that displays
32 in the full copy edit grid (from clicking on the Copies(n) link).  However,
33 the inline grid is read-only, so it displays much faster and does not require
34 the user to change visual contexts.  
35
36 Included along the top of the lineitem table is a new 'Expand All' link which, 
37 when clicked, expands or collapses the inline grid for all visible lineitems.
38
39 Acquisitions Lineitem Order Identifiers
40 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
41
42 Staff now have the ability to specify the identifier value to use for
43 lineitems when communicating order information to vendors.  This is 
44 particularly important when a lineitem has, for example, multiple ISBNs.
45 Determining which ISBN is to act as the "order identifier" allows staff
46 to provide the most accurate order information to vendors.  
47
48 Supported identifier types include ISBN, ISSN, and UPC.  Order identifier 
49 values are relayed to vendors via EDI and print PO.
50
51 Permissions
52 +++++++++++++
53 Two new permissions are added for this feature:
54
55  * ACQ_SET_LINEITEM_IDENTIFIER
56   ** Allows staff to apply order identifiers to lineitems
57  * ACQ_ADD_LINEITEM_IDENTIFIER
58   ** Implies that new identifiers shall be added to linked bib records, 
59      when a linkage exists.
60
61 Acquisitions Purchase Order and other Interface Improvements
62 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
63
64 Feature Summary
65 +++++++++++++++
66
67 The following features, which primarily affect the user interface layer,
68 improve Acquisitions work flows.
69
70   * Avoid double-activation of POs
71   * Disable invoice and cancel options for pending POs
72   * Disable zero-copy checkbox for activated POs
73   * Disable new charges for activated POs
74   * Replace "Shelving Location" with Copy Location
75
76   * Rearranging "actions" drop-down
77     ** More consistency in actions applying to selected lineitems specifically
78     ** Things moved from the per-lineitem dropdown to the main one when
79        sensible.
80     ** Add to PO dialog added
81     ** You can no longer add lineitems to a PO if they're already on one.
82     ** Actions in dropdown now enabled/disabled differently depending on
83        the interface where it appears (PO vs Selection List vs Acq Search etc.)
84
85   * Batch update for line items
86      ** Apply updates to all copies of all selected line items at once
87      ** Relies on a middle layer method that streams back information that
88         would suit a more asynchronous display in the future (rather than
89         simply reloading the page upon success, which it does now)
90      ** For failure cases, specific information about which line item cannot
91         be updated, and why, is available to the client, although taking
92         best advantage of this information for user-friendly display is left
93         to the future.
94   * Add optional fund, circ modifier and collection code fields to distribution
95   formulas.
96   * The invoices interface auto-populates "# Invoiced" column with number of
97   invoiceable copies, and copies the "billed cost" column to the "amount paid"
98   column if the latter doesn't have anything in it yet.
99
100 Acquisitions MARC Upload Form Persistence
101 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
102 Adds a two-layer persistence mechanism for the acquisitions MARC file upload
103 interface.  A set of org unit settings now exist for managing default values
104 for the interface.  Additionally, for each field where no org unit setting
105 value is configured, the last-used value will be persisted locally and re-
106 used with subsequent loads of the interface.
107
108 Default Number of Acquisitions Copies to Order
109 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
110 Acquisitions providers have a new "Default # Copies" field.  When the value
111 is set, this number of copies will be automatically added to each lineitem
112 added to a purchase order for the provider.  This takes place during PO
113 creation from a selection list or existing bib record and when a lineitem is 
114 added to an existing purchase order.  If a lineitem already has copies 
115 attached, no default copies are added.
116
117 OPAC
118 ~~~~
119
120 Removal of JSPAC
121 ^^^^^^^^^^^^^^^^
122 TPAC is now the default catalog in Evergreen. The default apache configuration
123 now points to TPAC, staff client OPAC options now point to TPAC, and the JSPAC
124 to TPAC toggle has been removed from the portal page.
125
126 Display alternate graphic (880) fields
127 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
128
129 By default, Evergreen displays alternate graphic fields, if any, for
130 contributors (1xx / 7xx), titles (245), edition statements (250), imprints
131 (260), notes (5xx), subjects (6xx), and series (4xx / 8xx) in search results and record details
132 per the Library of Congress MARC21 specifications:
133
134 * http://www.loc.gov/marc/bibliographic/bd880.html
135 * http://www.loc.gov/marc/bibliographic/ecbdcntf.html
136 * http://www.loc.gov/marc/bibliographic/ecbdmulti.html (Model A)
137
138 Default display
139 +++++++++++++++
140 In general, alternate graphic fields display below the corresponding
141 primary field. One exception is the attribution summary on the record details
142 page, in which the alternate graphic field contents display between the
143 primary field content and the attribution statement. To support CSS
144 customizations, HTML elements for the graphic fields have the class attribute
145 value `graphic880`.
146
147 MARC21 Feeds from OpenSearch
148 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
149 In addition to the already supported formats, you can now get raw MARC21 from
150 OpenSearch feeds, à la:
151
152     http://<host>/opac/extras/opensearch/1.1/-/marc21?searchTerms=piano
153
154
155 Options to Hide Some User Preferences
156 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
157 The config.tt2 file now provides options to disable phone notification options, password changes, and e-mail address changes in TPAC. These options are useful
158 for libraries that do not do phone notifications and for those that use
159 centralized authentication. 
160
161 Note the ability to disable user name changes is already available through the
162 Library Settings editor.
163
164 Public Copy Notes
165 ^^^^^^^^^^^^^^^^^
166 Public copy notes are now visible in TPAC.
167
168 Search Changes
169 ^^^^^^^^^^^^^^
170 A number of changes have been made to search to allow more control and improve
171 performance. These changes and their associated configurations are global to
172 the entire system and can not be configured on a per-library basis.
173
174 Amongst other things the new search code fixes:
175
176 * Invalid queries being generated from advanced searches
177 * Some timeouts from backend code taking too long to perform a search
178 * Some filters being one-use only
179 * Negations not working properly where multiple indexes are involved
180
181 Improvements include:
182
183 * Exact matches on input should be more likely to float to the top of results
184 * Non-English stemming can be used, alongside or instead of English stemming
185 * Entered search terms can be found across multiple indexes
186
187 Default configuration is geared towards English but is easily changed. In a
188 production environment changes will likely require re-indexing, however.
189
190 The upgrade script could be pre-tweaked to install desired configuration before
191 it builds and/or re-builds many of the indexes.
192
193 Permissions
194 +++++++++++
195 One new permission is added for this feature:
196
197   * ADMIN_INDEX_NORMALIZER
198
199 Searching for deleted records
200 +++++++++++++++++++++++++++++
201 Evergreen now supports searching for deleted records via the '#deleted'
202 QP modifier.
203
204 In order to support this, sites must enable the
205 'ingest.metarecord_mapping.preserve_on_delete' internal flag.  It is off by
206 default since the ability to search for deleted records requires keeping
207 metarecord mappings around when bibs are deleted, which may not be desirable
208 for the typical site.
209
210 Two new QP filters: create_date and edit_date
211 +++++++++++++++++++++++++++++++++++++++++++++
212 These filter on the fields of the same name in biblio.record_entry.
213
214 e.g.
215
216   * create_date(,2013-02-01)  =>  records created before 2013-02-01
217   * create_date(2013-02-01)   =>  records created since 2013-02-01
218   * create_date(2013-02-01,2013-02-28)  =>  records created in Feb 2013
219   * create_date(yesterday)    =>  records since created yesterday
220
221 Show local call number in TPAC My Lists display
222 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
223 If an opac-visible call number exists that is owned by an org unit
224 relevant to the patron, show the most relevant call number label
225 and owning branch name in the My Lists display for each record in
226 the list.  Call number is displayed in both saved and temporary lists.
227
228 A call number is considered relevant if its owner is one of:
229
230 physical location library
231 preferred library (plib, home, etc.)
232 search library
233
234 If no relevant call number is found, no call number is displayed.
235
236 TPAC Google Books preview
237 ^^^^^^^^^^^^^^^^^^^^^^^^^
238 Setting `ctx.google_books_preview` to `1` in the TPAC `config.tt2`
239 configuration file will cause the TPAC to check to see, as part of the record
240 details view, if Google Books has an online preview available. If it does,
241 then a preview button will be displayed in the book cover image location.
242 If the user then clicks the preview button, the preview will load below the
243 title of the book in the record details page.
244
245 By default, this functionality is disabled to protect the privacy of users
246 who might not want to share their browsing behavior with Google.
247
248 TPAC Novelist Select Integration
249 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
250 The URL for Novelist Select integration with TPAC has changed, and so
251 has the manner in which it is configured in `eg_vhost.conf.` You will
252 find a section like the following in `eg_vhost.conf:`
253
254 -------------------------------------------------------------------------------
255     # Novelist
256     # SetEnv OILS_NOVELIST_URL http://imageserver.ebscohost.com/novelistselect/ns2init.js
257     # SetEnv OILS_NOVELIST_PROFILE <profile>
258     # SetEnv OILS_NOVELIST_PASSWORD <password>
259 -------------------------------------------------------------------------------
260
261 You will want to remove the hash marks on the three lines that have
262 `SetEnv` in them.  You will also want to replace `<profile>` and
263 `<password>` with your Novelist Select profile and password provided
264 to you by EBSCO.
265
266 TPAC Org Unit Hiding
267 ^^^^^^^^^^^^^^^^^^^^
268 Adds support for the opac.org_unit_hiding.depth org unit setting to
269 TPAC, which makes out-of-scope org units disappear (except when
270 explicitly requested).
271
272 Org unit hiding is based on the physical_loc (Physical Location) param /
273 cookie, which is the closest analog to 'ol' (original location), from
274 which it was based in the JSPAC.
275
276 UI Changes
277 ++++++++++
278
279  * All search org unit selectors
280  * Holds pickup lib selector
281  * Copy summary in search results page
282  * Copy list in search results page
283  * Copy summary in record detail page (which controls the copy grid).
284  * Hold summary in record detail page
285
286 Cataloging
287 ~~~~~~~~~~
288
289 MARC Import Tag Stripping
290 ^^^^^^^^^^^^^^^^^^^^^^^^^
291 Administrators can configure MARC tags which are removed from MARC records 
292 imported via Z39.50 and the Vandelay MARC Import/Export UI (ACQ and non-ACQ).  
293 Tags are organized into groups.  Groups can be marked as optional or required.
294 For each tag, every instance of the tag (including all subfields) are removed 
295 from the record.
296
297 MARC fields which are contained within required ('always_apply') tag groups
298 are always removed from inbound records.  No action is needed.  Tag groups 
299 which are optional will appear in MARC import interfaces (see below) allowing 
300 staff to select which groups of tags to strip from incoming records at import 
301 time.
302
303 Interfaces Affected
304 +++++++++++++++++++
305
306  * Admin UI
307   ** Admin => Server Administration => MARC Import Remove Fields
308  * Z39.50 Import
309   ** Cataloging => Import Record from Z39.50
310   ** Optional groups appear with the other import options
311  * Vandelay
312   ** Cataloging => MARC Import/Export (Vandelay)
313   ** Acquisitions => Load Order Records
314   ** Optional groups appear with the other import options
315
316 Permissions
317 +++++++++++
318 Three new permissions are added for this feature:
319
320   * CREATE_IMPORT_TRASH_FIELD
321   * UPDATE_IMPORT_TRASH_FIELD
322   * DELETE_IMPORT_TRASH_FIELD
323
324 Vandelay Default Match Set
325 ^^^^^^^^^^^^^^^^^^^^^^^^^^
326 A new org unit setting to specify a default Record Match Set when 
327 importing MARC records through the MARC Batch Import/Export interface. It does
328 not affect the default match set selected in acquisitions. If this
329 is set, it will not be possible to leave the Record Match Set field blank;
330 it may be necessary to define a default match set that replicates the current
331 default behavior. 
332
333 A new "Vandelay" org unit settings group is also created.
334
335 Direct access to Item Attribute Editor
336 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
337 You can now access the item attribute editor via Admin -> Local Admin -> Item
338 Attribute Editor. No copy record is loaded into the editor, but it is available to without first finding an item and loading it into the editor:
339
340   * Configure copy templates.
341   * Hide fields in the copy editor.
342
343 Circulation
344 ~~~~~~~~~~~
345
346 Clickable Patron Indicators
347 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
348 When retrieving a patron record, staff can now click on the indicators listed 
349 beneath the patron's name and launch the related tabs.
350
351 For example, clicking on (See Notes) will open the associated patron's notes.
352
353 "Warn patrons when their account is about to expire"
354 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
355 To give staff the ability to warn patrons when their account is about to
356 expire, the staff client can display an alert message on the patron information
357 window.  A new library setting, `Warn patrons when their account is about to
358 expire` in the *Circulation* section of the *Library Settings Editor*,
359 determines how many days in advance of a patron's account expiry date the alert
360 should be displayed. By default, warnings about upcoming patron account expiry
361 dates are not displayed.
362
363 Show Hold Patron Name in TPAC
364 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
365 When looking up patron information for hold placement via the staff client in
366 TPac, the hold patron name is now shown next to the entered barcode. In the
367 event that the barcode is not found, a notice is displayed and the submit
368 button is disabled until a valid barcode is entered or the staff member is
369 switched to.
370
371 Show Holds On Bib Menu Option
372 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
373 Add direct "Show holds on bibs" menu option from item checkin, item status, 
374 and patron hold interfaces. This gives staff a quicker way of viewing who 
375 else has holds on an item instead of having to click an option to view the 
376 bib record, then clicking into the menus to view holds.
377
378 Administration
379 ~~~~~~~~~~~~~~
380
381 Calculated Proximity Adjustments
382 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
383 Allows customization to the way that Evergreen measures the distance between
384 org units for the purposes of 1) determining what copy at what org unit is best
385 suited for targeting a title-level hold, and 2) determining what hold is best
386 suited for fulfillment by a copy-in-hand at capture (checkin) time.  The
387 customization is based on a table 'actor.org_unit_proximity_adjustment', with
388 certain matching criteria that the system compares to properties of the holds
389 and copies in question.
390
391 Permissions
392 +++++++++++
393 One new permission is added for this feature:
394
395   * ADMIN_PROXIMITY_ADJUSTMENT
396     ** Allows staff to administer the proximity adjustments
397
398
399 Custom best-hold selection sort order
400 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
401 The ranking algorithm that chooses the best hold to target a copy in 
402 hand at a capture time used to be fairly simple.  It had two modes, FIFO
403 and not-FIFO, and that was it.
404
405 This change allows full configuration of that algorithm.  In other 
406 words, when the system captures a copy and sets out to evaluate what
407 hold, if any, that copy might best fulfill, site staff of sufficient
408 permission level are now empowered to choose exactly which comparisons
409 the systems makes in what order.  This gives said staff much greater
410 flexibility than they have today over holds policy.
411
412 For more information, see the included tech spec documents.
413
414 Permissions
415 +++++++++++
416 One new permission is added for this feature:
417
418   * ADMIN_HOLD_CAPTURE_SORT
419     ** Allows staff to administer the custom best-hold selection sort order.
420
421 Generic CSV Notification Generator/Receiver
422 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
423
424 New Action/Trigger template and sample event definitions for creating a CSV
425 export file for various patron actions, primarily for the purpose of creating
426 patron notices via external notification mechanisms.
427
428 The reference implementation for this development is the TalkingTech iTiva
429 product, which consumes CSV files for generating phone/text notifications and
430 produces CSV results files for informing the ILS of notification statuses.  
431 The template and send/receive scripts, however, should be generic enough to 
432 create CSV for any type of 3rd-party notification product.
433
434 For more information, see the included tech spec documents.
435
436 Storing Z39.50 Server Credentials
437 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
438
439 In the Z39.50 configuration interface, staff now have the option to apply
440 z39.50 login credentials to each Z39.50 server at different levels of the 
441 org unit hierarchy (similar to org unit settings).  When credentials are set 
442 for a Z39 server, searches against the z39 server will used the stored 
443 credentials, unless other credentials are provided by the caller, in which 
444 case the caller credentials are used.
445
446 For security purposes, passwords may not be retrieved or reported on by staff.  
447 Staff can only apply new values for credentials or clear existing ones.
448
449 URL Verification
450 ^^^^^^^^^^^^^^^^
451 In order to support verification of URLs, Evergreen now has several new
452 capabilities, and extensions to some existing features.
453
454 A wizard-style interface that walks a staff member through the process of collecting records and URLs to verify, verifying and reviewing the URLs.
455
456 URL validation sessions are built as a whole to support immediate and
457 future review of any URLs.  Each session carries a name, an owner, a set
458 of record search criteria, a set of tag and subfield combinations describing
459 the location of URLs to validate, a record container for tracking individual
460 records to verify, and a set of state and data tables for managing the
461 processing of individual URLs.
462
463 A set of middle-layer methods provide the business logic required to collect
464 records, extract, parse and test the validity of the URLs.
465
466 For more information, see the included tech spec documents.
467
468 Permissions
469 +++++++++++
470 One new permission is added for this feature:
471
472  * URL_VERIFY
473
474 Serials
475 ~~~~~~~
476
477 Serial Control: Embed Alternate Interfaces
478 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
479 As another step toward a unified interface, the serial control subscription
480 editor now consists of an embedded version of the alternate control. This
481 reduces duplication of both code and documentation, and smooths the eventual
482 transition to a single interface.
483
484 In order to not lose any essential features, the following additions were made
485 to the new combination editor:
486
487 * note editors on subscriptions and distributions
488 * labeled dropdown for distribution summary options ("Add to record entry", "Use record entry only", etc.)
489 * legacy record entry linkage setup (Allows one to tie a distribution's information to a particular serial record entry (i.e. a MFHD record))
490
491 Serial Control: Set Special Statuses
492 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
493 The Serial Control interface prevents direct editing of serial item statuses
494 for data integrity reasons. As an alternative to direct control, the interface
495 now offers new menu options for setting items to 'claimed', 'not held', and
496 'not published'. Note that these statuses are still currently useful for
497 reporting and display purposes only.
498
499 Staff Client
500 ~~~~~~~~~~~~
501
502 Staff client search preferences
503 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
504 Staff can now set workstation-level search preferences through Admin ->
505 Workstation Administration -> Set Search Preferences. 
506
507   * Default Search Library sets the library that is searched by default from
508   the advanced search page and the portal page.
509   * Preferred library is used to identify copies that should display first.
510   * Advanced search default pane allows staff to set the numeric or expert
511   searches as the default search tab.
512
513 The option to change the preferred search library from the search results page
514 is no longer available when logged into the staff client.
515
516 add "about:about" to developer menu in staff client
517 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
518
519 about:about gives access to various XULRunner diagnostic tools.
520 Useful ones include:
521
522 about:buildconfig::
523     Get information about how the staff client is built.
524 about:config::
525     Tweak XULRunner settings.
526 about:memory::
527     Get detailed information about the memory usage of the staff
528     client.
529
530
531 Miscellaneous
532 -------------
533
534 Loading Sample Data
535 ~~~~~~~~~~~~~~~~~~~
536 One common need for people evaluating Evergreen, as well as for developers,
537 writers, and testers, is a set of sample data that can be easily loaded into
538 the Evergreen database and provide a consistent set of results for testing
539 and training purposes.
540
541 This release features sets of sample data consisting of:
542
543 * 100 bibliographic records retrievable via a "concerto" keyword search
544 * 100 French bibliographic records
545 * Associated call numbers, copies, parts, and conjoined items
546 * Patron accounts, including some recently expired patrons
547 * Circulation transactions, including some holds and some overdue items
548
549 To load the sample data into a freshly installed Evergreen database, you can
550 pass the following arguments to the `eg_db_config` script (either when you are
551 creating the initial database schema, or as a separate call after creating the
552 database schema):
553
554 * `--load-all-sample`: Loads all sample data, including bibliographic records,
555    call numbers, copies, users, and transactions.
556 * `--load-concerto-sample`: Loads a subset of sample data that includes just
557   100 bibliographic records, and associated call numbers and copies.