LP#1673857: stamp schema update
[working/Evergreen.git] / docs / RELEASE_NOTES_2_12.adoc
1 Evergreen 2.12 Release Notes
2 ============================
3 :toc:
4 :numbered:
5
6 Evergreen 2.12.3
7 ----------------
8
9 This release contains several bug fixes improving on Evergreen 2.12.2.
10
11 Web Client Bug Fixes
12 ~~~~~~~~~~~~~~~~~~~~
13 The web client, which is available for trial production use in libraries,
14 received several fixes in this release:
15
16 * The receipt on payment checkbox now prints a receipt at time of payment.
17 * The Items Out count in the patron screen now includes long overdue
18 items.
19 * A fix was added to prevent values from a previously-edited patron from
20 appearing in the edit form of a subsequent patron.
21 * User notification preferences now save correctly in the patron
22 registration and edit forms.
23 * The UPDATE_MARC permission is no longer requested when performing a
24 search from the staff catalog.
25 * Non-cataloged circulations now display in the Items Out screen without
26 requiring a refresh.
27 * Required statistical categories are now required to be entered in the 
28 copy editor. (A similar bug for the patron editor was fixed in the 2.12.1
29 release).
30 * Voiding bills now requires confirmation.
31 * Staff can no longer use the copy editor to put items into or out of the
32 following statuses: checked out, lost, in transit, on holds shelf, long
33 overdue, and canceled transit.
34 * The contrast is improved for alert text showing the amount a patron owes
35 in bills.
36 * Circ modifiers now sort alphabetically in the copy editor.
37
38 Other Bug Fixes
39 ~~~~~~~~~~~~~~~
40 * Code to prevent a hold already on the Holds Shelf from being
41 transferred to another title.
42 * A fix to a bug that prevented users from scheduling reports with a
43 relative month if the report template used a date that applied the Year +
44 Month transform with the On or After (>=) operator.
45 * A fix to a bug where the max fines threshold was reached prematurely
46 due to the presence of account adjustments.
47 * A check that prevents a SMS message from attempting to sending when the SMS
48 carrier is null.
49 * For systems that provide search format as a filter on the advanced
50 search page, a fix so that the format selected in the search bar when
51 launching a new search from the results page overrides any previously-set 
52 formats.
53 * The addition of an optional new Apache/mod_perl configuration variable for
54 defining the port Apache listens on for HTTP traffic. This resolves an issue
55 where added content lookups attempting HTTP requests on the local Apache
56 instance on port 80 failed because Apache was using non-standard ports.
57 * A fix to the public catalog's My List page responsive design so that it now
58 displays properly on mobile devices and allows users to place holds from My List. 
59 * A fix to a bug where the second (and subsequent)
60 pages of search results in the public catalog (when group
61 formats and editions is in effect) does not correctly generate
62 links to hits that are not part of of a multi-bib metarecords.
63
64 Acknowledgements
65 ~~~~~~~~~~~~~~~~
66 We would like to thank the following individuals who contributed code,
67 testing and documentation patches to the 2.12.3 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 * Terran McCanna
77 * Dan Scott
78 * Chris Sharp
79 * Ben Shum
80 * Remington Steed
81 * Cesar Velez
82 * Dan Wells
83
84 Evergreen 2.12.2
85 ----------------
86
87 This release is a security release that also contains several other bug
88 fixes improving on Evergreen 2.12.1.
89
90 Security Issue: XSS Vulnerability in Public Catalog
91 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
92 This release fixes several cross-site scripting (XSS) vulnerabilities
93 in the public catalog. When upgrading, Evergreen administrators should
94 review whether any of the following templates have been customized
95 or overridden. If so, either the template should be replaced with the
96 stock version or the XSS fix (which entails adding the `| html` filter
97 in several places) applied to the customized version.
98
99 * `Open-ILS/src/templates/opac/parts/locale_picker.tt2`
100 * `Open-ILS/src/templates/opac/parts/login/form.tt2`
101 * `Open-ILS/src/templates/opac/parts/searchbar.tt2`
102
103 Upgrade Notes
104 ~~~~~~~~~~~~~
105 * Administrators of Evergreen who use RTL locales and who have customized
106 `style-rtl.css.tt2` should now incorporate their customizations into
107 `style.css.tt2`.
108 * The `reporter.classic_current_circ` view, which is part of some
109 extra views defined in `Open-ILS/src/sql/Pg/example.reporter-extension.sql`,
110 has been fixed to not exclude loans for patrons who do not have a
111 billing address set. Users of this view should rerun
112 `Open-ILS/src/sql/Pg/example.reporter-extension.sql` during upgrade.
113
114 Hold Targeter Repairs and Improvements
115 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
116 A series of changes were made to the new hold targeter available in 2.12.
117
118 * Make the batch targeter more resilient to a single-hold failure.
119 * Additional batch targeter info logging.
120 * Set OSRF_LOG_CLIENT in hold_targeter_v2.pl for log tracing
121 * Removes the confusingly named --target-all option
122  ** The same behavior can be achieved by using --retarget-interval "0s"
123 * Removes --skip-viable (see --soft-retarget-interval below)
124
125 New --next-check-interval Option
126 ++++++++++++++++++++++++++++++++
127 Specify how long after the current run time the targeter will retarget
128 the currently affected holds. Applying a specific interval is useful
129 when the retarget-interval is shorter than the time between targeter
130 runs.
131
132 For example, if the targeter is run nightly at midnight with a
133 --retarget-interval 36h, you would set --next-check-interval to 48hr,
134 since the holds won't be processed again until 48 hours later. This
135 ensures that the org unit closed date checks are looking at the correct
136 date. 
137
138 This setting overrides the default behavior of calculating the next 
139 retarget time from the retarget-interval.
140
141 New --soft-retarget-interval Option
142 +++++++++++++++++++++++++++++++++++
143 This is a replacement for (and rebranding of) the --skip-viable option. 
144 The new option allows for time-based soft-targeting instead simple binary 
145 on/off soft-targeting.
146
147 How soft-targeting works:
148 * Update hold copy maps for all affected holds
149 * Holds with viable targets (on the pull list) are otherwise left alone.
150 * Holds without viable targets are retargeted in the usual manner. 
151
152 Other Bug Fixes
153 ~~~~~~~~~~~~~~
154 * A fix to remove the Chilifresh patron reviews header for Evergreen sites
155 that do not use Chilifresh.
156 * A fix that marks acquisitions POs as received when all line items on the 
157 PO are received or canceled.
158 * A typo fix to the long overdue override permission that prevented staff
159 from being able to override long overdue check ins.
160 * A fix to use a library's configured currency in SIP patron responses
161 instead of always using US dollars.
162 * A fix to SIP timeouts caused by invalid sessions
163 * A fix that allows boolean fields to be recognized in queries to the
164 Z39.50 server.
165 * A fix to use the correct method during adjust to zero on negative
166 balances.
167 * A correction to the datatype for the Vandelay Default Record Match Set
168 setting.
169 * The removal of the _Keep_ field from MARC Batch Import Item Attributes.
170 The field was not previously implemented.
171 * A fix to set the complete time value for grouped Action/Trigger events
172 when an event's state reach complete, consistent with non-grouped events.
173 * A fix to a bug in the rollover_phone_to_print.pl script that kept failed
174 call files from being moved.
175 * A new index for acq.edi_message that speeds up the check for duplicate
176 EDI messages.
177 * A fix that ensures JSON strings are converted to UTF8, ensuring that
178 non-ASCII data display correctly.
179 * A fix to avoid an erroneous unsaved data popup to appear during MARC
180 record creation.
181 * A typo fix in the web client's bill payment receipt template.
182 * A correction to ebook account links on the My Account Summary page.
183 * Improved responsive design for the ebook My Account screens so that
184 they display better on mobile devices.
185 * A fix to a bug that prevented a patron opt-in dialog from loading.
186 * The RTL stylesheet for the public catalog,
187 `templates/opac/css/style-rtl.css.tt2`, has been merged into the LTR
188 one (`templates/opac/css/style.css.tt2`). The combined stylesheet
189 template will emit RTL or LTR styles based on the value of
190 the `rtl` flag of the active locale. An `rtl` variable is also available
191 in the template to allow the correct style to be chosen.
192 * A fix to leaking of the internal port number to the client when
193 Apache is configured to use nonstandard ports in combination with a proxy
194 server.
195 * The addition of the vandelay.auto_overlay_bib_record upgrade script,
196 which was missed in a 2.1-2.2 era upgrade script. It isn't necessary for
197 sites that began using Evergreen since then to run the script, but
198 it is harmless to run.
199 * A web staff client fix that will hid the behind-desk option for
200 for libraries that do not support "Behind Desk Pickup".
201 * A web staff client fix that caused hold transit check ins to fail
202 silently when the transit destination does not have a holds address.
203 * A web staff client fix that now requires the entry of user statistical
204 categories in the patron editor if those stat cats are configured to
205 be required.
206 * A fix to a problem with the "Exclude Electronic Resources" checkbox
207 that prevented users from removing a selection from the box.
208 * The removal of the search format limiters from the new advanced search
209 limiter block on the search results page. The search format limiters
210 should not display there because they can be selected from the search bar.
211
212
213
214
215 Acknowledgements
216 ~~~~~~~~~~~~~~~~
217 We would like to thank the following individuals who contributed code,
218 testing and documentation patches to the 2.12.2 point release of
219 Evergreen:
220
221 * Galen Charlton
222 * Jeff Davis
223 * Bill Erickson
224 * Jason Etheridge
225 * Jeff Godin
226 * Blake Henderson
227 * Linda Jansova
228 * Kathy Lussier
229 * Jillianne Presley
230 * Jane Sandberg
231 * Dan Scott
232 * Chris Sharp
233 * Remington Steed
234 * Jason Stephenson
235 * Josh Stompro
236 * Remington Steed
237
238 Evergreen 2.12.1 
239 ----------------
240
241 This release contains several bug fixes improving on Evergreen 2.12.0
242
243 * A fix to the 2.12 upgrade of the subject|temporal and subject|geographic 
244 indexes, where the above-mentioned browse indexes were not turned off in favor
245 of new browse versions of the indexes. Sites that are upgrading from 2.12.0
246 can cancel the browse reingest that comes with the new upgrade script.
247
248 * A change to the default pickup library when staff place a hold. The place hold
249 screen will now default to the preferred pickup location for the patron. If the
250 patron does not have a preferred pickup location, it will default to the
251 patron's home library.
252 * A fix to a problem where users could not change the selected Org Unit on the
253 MARC Tag Tables server admin page.
254 * A fix to the seed data for translations for some Coded Value Map entries.
255 * The ability to skip the XUL staff client build when in make_release.
256 * Revised layout and styling for the advanced search limiter block that displays
257 on the search results page.
258 * A fix that silences a log warning that appears for every checkout where a hard
259 due date is not used.
260 * Tweaks for sounds that are used in the web staff client.
261 * The addition of f4 and ctrl-f2 as hotkeys in the web staff client.
262 * Additional help text for receipt templates in the web staff client.
263 * The reinstatement of the Reprint Last Receipt functionality in the web staff client.
264 * The ability in the web staff client copy editor to add new volumes to
265 libraries that were not selected in holdings view.
266 * A fix to a billing issue where transactions were not re-opened after they
267 acquired a non-zero balance at check in.
268 * A change to the web staff client work log to prevent it from storing 
269 unnecessary data.
270 * A fix to a translation issue for the record attributes displayed in the 
271 advanced search limiter block on the search results page.
272 * A fix to hold targeting for metarecord holds when the new hold targeter is
273 run in parallel mode.
274
275 Acknowledgements
276 ~~~~~~~~~~~~~~~~
277 We would like to thank the following individuals who contributed code,
278 testing and documentation patches to the 2.12.1 point release of
279 Evergreen:
280
281 * Eva Cerniňáková
282 * Galen Charlton
283 * Bill Erickson
284 * Jason Etherige
285 * Jeanette Lundgren
286 * Kathy Lussier
287 * Mike Rylander
288 * Jane Sandberg
289 * Dan Scott
290 * Ben Shum
291 * Robert Soulliere
292 * Jason Stephenson
293 * Josh Stompro
294 * Dan Wells
295
296
297 2.12.0 Upgrade notes
298 --------------------
299 Evergreen 2.12 now requires OpenSRF 2.5 or later; certain functionality
300 will not work if you attempt to run Evergreen 2.12 on OpenSRF 2.4. Evergreen
301 2.12 recommends PostgreSQL 9.4. The minimum supported version of PostgreSQL is
302 9.3.
303
304 The stock schema upgrade script performs a browse and facet reingest,
305 recalculates bib fingerprints, and remaps metarecords.
306
307 This version also adds two new services, `open-ils.ebook_api` and
308 `open-ils.hold-targeter`.
309
310 2.12.0 New Features
311 -------------------
312
313 Acquisitions
314 ~~~~~~~~~~~~
315 Default status for received line items
316 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
317 A new Library Setting has been added to allow libraries to set the default
318 status for received line items. The previous behavior was to use the
319 "In process" status for all acquisitions items that are received.
320
321
322 Administration
323 ~~~~~~~~~~~~~~
324
325
326
327 Additional SMS Carriers
328 ^^^^^^^^^^^^^^^^^^^^^^^
329 SMS carrier definitions are now included for Google Fi and
330 Republic Wireless. These will be automatically loaded when
331 installing a new Evergreen system; admins who wish to
332 add these definitions during an upgrade can use the following
333 email gateway values:
334
335  * Google Fi: `$number@msg.fi.google.com`
336  * Republic Wireless: `$number@text.republicwireless.com`
337
338
339
340
341 Bibliographic Fingerprint Improvements
342 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
343 The bibliographic fingerprint will now incorporate subfields $n and $p from MARC
344 title fields to better distinguish among records of the same series that
345 may share the same title but have a different part. With this change, these
346 MARC records will no longer be grouped together in a 'Group Formats & Editions'
347 search.
348
349 The bibliographic fingerprint was also changed to better distinguish among
350 the fields contributing to the fingerprint. This change will help the system
351 distinguish between a record for the movie _Blue Steel_ and another record for
352 the book _Blue_ written by Danielle Steel.
353
354
355
356
357
358
359 Batch Hold Targeter Speed-up and New Features
360 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
361
362 Adds a new `open-ils.hold-targeter` service, supporting new targeting options
363 and runtime optimizations to speed up targeting.  The service is launched
364 from a new targeting script, `hold_targeter_v2.pl` (default location:
365 `/openils/bin/hold_targeter_v2.pl`).
366
367 This code has no effect on the existing hold targeter, which is still
368 available as of this release and functions as before.
369
370 New Features/Options
371 ++++++++++++++++++++
372
373 * Adds a global configuration flag 'circ.holds.retarget_interval' for 
374   setting the hold retarget interval.
375
376 * `--target-all` option forces the targeter to process all active
377   holds, regardless of when they were last targeted.
378
379 * `--retarget-interval` option make is possible to override the new
380   'circ.holds.retarget_interval' setting via the command line 
381   when calling the hold targeter.
382
383 * `--skip-viable` option causes the hold targeter to avoid modifying 
384   the currently targeted copy (i.e. the copy on the pull list) for holds 
385   that target a viable (capturable) copy.  
386   {empty} +
387   {empty} +
388   For skipped holds, no entry is added to the unfulfilled_hold_list.
389   The set of potential copies (hold copy maps) are refreshed for all
390   processed holds, regardless of target viability.
391   {empty} +
392   {empty} +
393   This option is useful for 1.) finding targets for holds that require 
394   new targets and 2.) adding new/modified copies to the potential copy 
395   lists (for opportunistic capture) more frequently than you may want to do full
396   retargeting of all holds.
397
398 * `--newest-first` option processes holds in reverse order of request_time,
399   so that newer holds are (re)targeted first.  This is primarily useful
400   when a large backlog of old, un-targetable holds exist.  With 
401   `--newest-first`, the older holds will be processed last.
402
403 * `--parallel` option overrides the parallel settings found in `opensrf.xml`
404   for simpler modification and testing.
405
406 * `--lockfile` option allows the caller to specify a lock file instead
407   of using the default /tmp/hold_targeter-LOCK
408
409 * `--verbose` option prints progress info to STDOUT, showing the number of
410   holds processed per parallel targeter instance.
411
412 * When configured, hold target loops cycle through all org units (with 
413   targetable copies) instead of repeatedly targeting copies at the pickup
414   library when multiple targetable copies exist at the pickup library.
415
416 * When configured, hold target loops prioritize (targetable) org units
417   first by the number of previous target attempts, then by their 
418   weight/proximity.  This effectively back-fills org units that had no
419   targetable copies during earlier target loops so that they are 
420   targeted as many times as other org units (to the extent possible, 
421   anyway).
422
423 Examples
424 ++++++++
425
426 * Traditional daily hold targeter with a value set for 
427   'circ.holds.retarget_interval'.
428
429 [source,sh]
430 --------------------------------------------------------------------------
431 /openils/bin/hold_targeter_v2.pl
432 --------------------------------------------------------------------------
433
434 * (Re)target non-viable holds twice a day, only processing holds that 
435   have never been targeter or those that have not been re-targeted in
436   the last 12 hours.
437
438 [source,sh]
439 --------------------------------------------------------------------------
440 /openils/bin/hold_targeter_v2.pl --skip-viable --retarget-interval "12h"
441 --------------------------------------------------------------------------
442
443 * (Re)target non-viable holds twice a day, processing all holds regardless
444   of when or if they were targeted before, running 3 targeters in
445   parallel.
446
447 [source,sh]
448 --------------------------------------------------------------------------
449 /openils/bin/hold_targeter_v2.pl --skip-viable --target-all --parallel 3
450 --------------------------------------------------------------------------
451
452
453
454
455
456 Add separate make target for translators
457 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
458 For those only interested in building Evergreen translations, a separate
459 "translator" make target has been added to allow for easier installation
460 of i18n prerequisites.
461
462
463 Allow admin to specify where Perl modules will be installed
464 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
465 Add `--with-perlbase` option to `configure` to specify an alternative
466 location for installing the Perl modules. This can be useful for setups
467 that want to run the Perl modules from a shared filesystem or
468 environments that need to run multiple versions of Evergreen
469 simultaneously.
470
471 Users of `--with-perlbase` are responsible for ensuring that `PERL5LIB`
472 is set appropriately.
473
474
475
476 Addition of missing permissions
477 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
478 Required permissions that were previously missing from the stock data have now
479 been added. If Evergreen sites have already manually added these permissions,
480 the upgrade script will remove the old permission and create the new one,
481 maintaining any maps to permission groups, with the stock permission ID.
482
483
484
485
486
487 get_org_unit_ancestor_at_depth Helper Added to Action Trigger Reactor Helpers
488 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
489 In action trigger templates it's now possible to call
490 `helpers.get_org_unit_ancestor_at_depth($id_or_aou, $depth)` in order to retrieve
491 a fleshed aou for the target aou's ancestor at the chosen depth. This could be
492 used to retrieve the name of the library system rather than a specific branch
493 name, for instance.
494
495
496
497
498 Removed unused selfcheck password setting
499 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
500 There was an unused duplicate selfcheck password setting that was removed
501 to avoid confusion over which library setting was supposed to be set to
502 enable passwords for selfcheck. After upgrading, verify that your library
503 policy remains consistent for this setting.
504
505
506
507
508
509 Credit Processor Stripe Settings Permissions
510 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
511 Unprivileged users can retrieve organizational unit setting values for
512 setting types lacking a "view" permission.  When the feature adding
513 Stripe credit card processing was added, the upgrade script neglected
514 to add the VIEW_CREDIT_CARD_PROCESSING permission to the
515 organizational unit setting type.  This means that anyone can retrieve
516 and view the settings for Stripe credit card processing.
517
518 Any system that upgraded from Evergreen version 2.5 to 2.6 is
519 affected.  If you use Stripe for credit card processing, it is
520 strongly recommended that you apply this upgrade.  Even if you do not
521 use Stripe, applying this upgrade is still recommended.  If you did
522 not upgrade from version 2.5 to 2.6 of Evergreen, but started with a
523 later version, applying this upgrade is harmless.
524
525
526
527
528 Cataloging
529 ~~~~~~~~~~
530
531
532
533 New Access Points for MARC Merge/Overlay Profiles
534 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
535 Catalogers can now select a MARC merge/overlay profile to apply when
536 merging records in the (browser client) record bucket merge and Z39.50
537 record overlay interfaces. In both interfaces, if the user selects
538 a merge profile, the results of the merge are displayed, giving the
539 user the opportunity to choose a different merge profile or edit
540 the records involved prior to committing to the merge.
541
542 A new library setting, "Default Merge Profile (Z39.50 and Record Buckets)",
543 specifies the merge profile to preselect in the new merge profile
544 selectors in the record bucket merge and Z39.50 overlay logs. The
545 selectors will also remember the last selection that the user made.
546
547
548
549
550 Circulation
551 ~~~~~~~~~~~
552
553
554
555 Display Copy Alerts With In-House-Use
556 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
557
558 Two library settings are used to control the display of copy alert
559 messages or copy location check in alerts when recording in-house-use
560 in Evergreen.
561
562 Setting 'Display copy alert for in-house-use' to true for an
563 organization will cause an alert to appear with the copy's alert
564 message, if it has one, when recording in-house-use for the copy.
565
566 Setting 'Display copy location check in alert for in-house-use' to true
567 for an organization will cause an alert to display a message
568 indicating that the item needs to be routed to its location if the
569 location has check in alert set to true.
570
571 The settings are independent of one another because you may want to
572 display one and not the other when recording in-house-use.
573
574
575
576
577 Client
578 ~~~~~~
579
580
581
582 Active Date Column Picker Option
583 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
584 The active date will now be available as a column picker option in the Item
585 Status screen.
586
587
588
589
590 Punctuation Insensitive Patron Search
591 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
592 When performing a patron search, punctuation characters will be
593 ignored.  So if the patron is named O'Brien, then you can enter Obrien,
594 O'Brien, O Brien, etc. in the search box.
595
596 This behavior affects the Last Name (internally: family_name), First Name
597 (first_given_name), and Middle Name (second_given_name) fields of the search.
598
599
600
601
602
603
604 Touch screen improvements for Evergreen self-check interface
605 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
606 Improvements were made to the Evergreen self-check interface to make it easier
607 to use in a touch-screen environment.
608
609  * The pay fines link is now a pay fines button, matching other buttons on the
610 page.
611  * The checkboxes have been enlarged, making them easier to activate when using
612 a touch screen.
613
614
615
616
617
618 Trial Production Use of the Web Staff Client
619 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
620 The new web staff client is ready for trial production use in all functional
621 areas with the exception of serials and offline transactions. In addition to
622 many bug fixes in the areas of circulation, cataloging, administration and
623 reporting, Release 2.12 sees the following additions to web client
624 functionality.
625
626  * Acquisitions interfaces and functionality have been integrated into the web
627  staff client.
628  * Booking interfaces and functionality have been integrated into the web staff
629  client.
630  * Hatch, the program that will allow for unmediated printing to multiple
631  printers, sharing of workstation settings, and, eventually, offline 
632  transactions is now available. A windows installer for Hatch will be available
633  on the Evergreen-ILS Downloads page.
634
635 The Evergreen developers will keep pilot libraries updated about known web
636 client issues by posting known bugs to https://wiki.evergreen-ils.org/doku.php?id=dev:browser_staff:known_issues .
637
638 About Hatch
639 +++++++++++
640 Hatch is not required to use the web client, but should be used for workstations
641 that need to perform the following tasks.
642
643  * Unmediated printing to multiple printers. Workstations can print to multiple
644  printers without Hatch, but will need to click through a dialog to select a
645  printer. Hatch allows workstations to automatically print, without dialog, to
646  different printers. 
647  * Storage of workstation settings in a place outside the browser. Storing local
648  preferences in hatch will prevent tampering with preferences via the browser
649  developer tools and protect the settings from possible deletion if the browser
650  deletes settings in local storage.
651  * When offline functionality is available, hatch will be required to perform
652  offline transactions.
653  
654 Hatch is currently run as a Chrome extension and is not available in Firefox. To
655 use hatch on Windows, Evergreen sites should:
656
657  . install a java runtime environment version 8 (or higher) if not already
658  installed,
659  . download and execute the installer from the Evergreen downloads page, 
660  . open Chrome and navigate to chrome://extensions,
661  . enable _Developer Mode_ along the top right of the page,
662  . click the _Load Unpacked Extension_ button,
663  . load the directory at Hatch -> extension -> app,
664  .. In Windows, the default location for the app directory will be
665  C:\Program Files (x86)\Hatch\extension\app
666  . enable hatch features in the web client by going to Administration ->
667  Workstation Administration -> Print/Storage Service ("Hatch") and choosing
668  which services to use with Hatch.
669  .. this page will also inform you that hatch is connected. 
670
671
672
673
674 Infrastructure
675 ~~~~~~~~~~~~~~
676
677
678
679 Client Timezone Awareness
680 ^^^^^^^^^^^^^^^^^^^^^^^^^
681
682 Previously, adjusting the time zone in which a database session operates
683 could not be done in any way except globally, directly within the database.
684 However, allowing modification of the timezone parameter now supports
685 localization efforts for those consortia that span multiple time zones.
686
687 Implementation
688 ++++++++++++++
689
690 CStore and other services that interact with the primary Evergreen database
691 make use of the functionality provided by LP#1485371 in OpenSRF in order to
692 set the time zone configuration parameter available in PostgreSQL.  This has
693 the effect of interpreting all timestamps written to or read from the database
694 in the client's time zone.
695
696 Within CStore (and related, C-based services), all stateful sessions make use
697 of this capability, setting the database time zone upon a successful CONNECT
698 message from the client.  The time zone is reset to the database default when
699 a session is terminated either due to client DISCONNECT or server keepalive
700 timeout.
701
702 All stateless requests record the current database time zone, set the database
703 time zone to that of the client's, run the query, and then reset the database
704 time zone on each request that carries a client time zone value.  It is expected
705 that this will not cause any noticeable increase in latency or query execution
706 time, as this setting is local to the specific PostgreSQL server backend process.
707
708 Within the Storage service, the timezone will be set automatically by a simple
709 wrapper method used by the existing method registration mechanism for method
710 publishing.  Disconnect and error callbacks are registered to revert the time
711 zone setting within the database.  This provides completely transparent time
712 zone manipulation for backend services that make use of open-ils.storage.
713
714
715
716
717 Public Catalog
718 ~~~~~~~~~~~~~~
719
720
721
722 New Subject Browse Index Definitions
723 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
724 New subject browse index definitions have been added that display the entire
725 heading as a unit with hyphens between terms instead of displaying individual
726 terms separately. 
727
728 For example, the browse heading for:
729
730 =650 \0$aCats$zUnited States$vCorrespondence.
731
732 will display in a single entry as:
733
734 Cats -- United States -- Correspondence
735
736 Rather than separate entries for Cats and United States. 
737
738 Name subjects will continue to display as separate entries because additional
739 work would be required for the heading to be punctuated correctly.
740
741
742
743
744 Advanced Search Limiters Enhancement
745 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
746 Advanced search limiters will no longer propagate to the basic search box in
747 the catalog. Instead, the limiters applied to the search will appear underneath
748 the search box where they can be easily cleared by clicking an 'x.' On a small,
749 mobile device, the advanced search limiters can be seen by clicking an 'x filter
750 applied' link. 
751
752 The selected limiters will be applied to any search from the search bar until:
753  * The user actively removes the filters from the search or
754  * The user starts a new basic or advanced search from scratch.
755
756
757
758
759 Arabic and Right-to-Left Language Support for the catalog
760 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
761 New stylesheets and other changes to the catalog to allow for 
762 better support of right-to-left (RTL) languages, such as Arabic.
763
764 Also adds Arabic (Jordan) as a new supported language.
765
766
767
768
769 Ebook API integration
770 ^^^^^^^^^^^^^^^^^^^^^
771 Evergreen 2.12 supports partial integration with third-party APIs
772 provided by OverDrive and OneClickdigital.  When ebook API integration
773 is enabled, bibliographic records from these vendors that appear in your
774 public catalog will include vendor holdings and availability information.  Also,
775 when a user is logged in, the public catalog dashboard and My Account interface
776 will include information about that user's checkouts and holds for
777 supported vendors.
778
779 For API integration to work, you need to request API access from the
780 vendor and configure your Evergreen system according to the instructions
781 below.  You also need to configure the new `open-ils.ebook_api` service.
782
783 This feature assumes that you are importing MARC records supplied by the
784 vendor into your Evergreen system, using Vandelay or some other MARC
785 import method.  This feature does not search the vendor's online
786 collections or automatically import vendor records into your system; it
787 merely augments records that are already in Evergreen.
788
789 A future Evergreen release will add the ability for users to check out
790 titles, place holds, etc., directly via the public catalog.
791
792 Ebook API service configuration
793 +++++++++++++++++++++++++++++++
794 This feature uses the new `open-ils.ebook_api` OpenSRF service.  This
795 service must be configured in your `opensrf.xml` and `opensrf_core.xml`
796 config files for ebook API integration to work.  See
797 `opensrf.xml.example` and `opensrf_core.xml.example` for guidance.
798
799 OverDrive API integration
800 +++++++++++++++++++++++++
801 Before enabling OverDrive API integration, you will need to request API
802 access from OverDrive.  OverDrive will provide the values to be used for
803 the following new org unit settings:
804
805   * *OverDrive Basic Token*: The basic token used for API client
806     authentication.  To generate your basic token, combine your client
807     key and client secret provided by OverDrive into a single string
808     ("key:secret"), and then base64-encode that string.  On Linux, you
809     can use the following command: `echo -n "key:secret" | base64 -`
810   * *OverDrive Account ID*: The account ID (a.k.a. library ID) for your
811     OverDrive API account.
812   * *OverDrive Website ID*: The website ID for your OverDrive API
813     account.
814   * *OverDrive Authorization Name*: The authorization name (a.k.a.
815     library name) designated by OverDrive for your library.  If your
816     OverDrive subscription includes multiple Evergreen libraries, you
817     will need to add a separate value for this setting for each
818     participating library.
819   * *OverDrive Password Required*: If your library's OverDrive
820     subscription requires the patron's PIN (password) to be provided
821     during patron authentication, set this setting to "true."  If you do
822     not require the patron's PIN for OverDrive authentication, set this
823     setting to "false."  (If set to "true," the password entered by a
824     patron when logging into the public catalog will be cached in plain text in
825     memcached.)
826   * *OverDrive Discovery API Base URI* and *OverDrive Circulation API
827     Base URI*: By default, Evergreen uses OverDrive's production API, so
828     you should not need to set a value for these settings.  If you want
829     to use OverDrive's integration environment, you will need to add the
830     appropriate base URIs for the discovery and circulation APIs.  See
831     OverDrive's developer documentation for details.
832   * *OverDrive Granted Authorization Redirect URI*: Evergreen does not
833     currently support granted authorization with OverDrive, so this
834     setting is not currently in use.
835
836 For more information, consult the
837 https://developer.overdrive.com/docs/getting-started[OverDrive API
838 documentation].
839
840 To enable OverDrive API integration, adjust the following public catalog settings
841 in `config.tt2`:
842
843   * `ebook_api.enabled`: set to "true".
844   * `ebook_api.overdrive.enabled`: set to "true".
845   * `ebook_api.overdrive.base_uris`: list of regular expressions
846     matching OverDrive URLs found in the 856$9 field of older OverDrive
847     MARC records.  As of fall 2016, OverDrive's URL format has changed,
848     and the record identifier is now found in the 037$a field of their
849     MARC records, with "OverDrive" in 037$b.  Evergreen will check the
850     037 field for OverDrive record identifiers; if your system includes
851     older-style OverDrive records with the record identifier embedded in
852     the 856 URL, you need to specify URL patterns with this setting.
853
854 OneClickdigital API integration
855 +++++++++++++++++++++++++++++++
856 Before enabling OneClickdigital API integration, you will need to
857 request API access from OneClickdigital.  OneClickdigital will provide
858 the values to be used for the following new org unit settings:
859
860   * *OneClickdigital Library ID*: The identifier assigned to your
861     library by OneClickdigital.
862   * *OneClickdigital Basic Token*: Your client authentication token,
863     supplied by OneClickdigital when you request access to their API.
864
865 For more information, consult the
866 http://developer.oneclickdigital.us/[OneClickdigital API documentation].
867
868 To enable OneClickdigital API integration, adjust the following public catalog
869 settings in `config.tt2`:
870
871   * `ebook_api.enabled`: set to "true".
872   * `ebook_api.oneclickdigital.enabled`: set to "true".
873   * `ebook_api.oneclickdigital.base_uris`: list of regular expressions
874     matching OneClickdigital URLs found in the 859$9 field of your MARC
875     records.  Evergreen uses the patterns specified here to extract
876     record identifiers for OneClickdigital titles.
877
878 Additional configuration
879 ++++++++++++++++++++++++
880 Evergreen communicates with third-party vendor APIs using the new
881 `OpenILS::Utils::HTTPClient` module.  This module is configured using
882 settings in `opensrf.xml`.  The default settings should work for most
883 environments by default, but you may need to specify a custom location
884 for the CA certificates installed on your server.  You can also disable
885 SSL certificate verification on HTTPClient requests altogether, but
886 doing so is emphatically discouraged.
887
888
889
890 Links to Other Formats and Editions
891 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
892 The record summary pages in the catalog will now link to other formats and
893 editions of a title. The links will allow users to quickly jump to another
894 format of the title or an edition written in another language. 
895
896
897
898
899
900 Metarecord Search Improvements
901 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
902 This release brings several improvement to the Group Formats and Editions
903 search. 
904
905  * Limiters on the advanced search page can now be successfully applied to 
906 Group Formats and Editions searches,
907  * Electronic resources are now retrievable through these searches,
908  * Paged navigation has improved.
909
910
911
912
913 Allow Metarecord Search by default
914 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
915 Before the TPAC, a site could configure the public catalog to use metarecord searching
916 by default, via a configuration file.  Here we bring that back.
917
918 A new setting called search.metarecord_default is present in
919 `templates/opac/parts/config.tt2` to enable this feature.  By setting this to
920 a true value (normally 1) the TPAC will silently include the #metabib search
921 modifier in the search form on any interfaces that do not have a UI component
922 that allows the user to control the setting.
923
924
925
926 RDA Improvements
927 ^^^^^^^^^^^^^^^^
928  * Author fields are now normalized to strip ending periods so that authors from
929 RDA and non-RDA records are collapsed in browse and facet headings.
930  * All author/contributor roles will now display in the record detail page.
931 Previously, some of the roles were omitted or were duplicated.
932
933
934 Obalkyknih.cz Integration
935 ^^^^^^^^^^^^^^^^^^^^^^^^^
936 Evergreen now integrates with Czech added content provider obalkyknih.cz. A new
937 setting called obalkyknih_cz.enabled is available in
938 `templates/opac/parts/config.tt2` to enable this new feature.
939
940
941 2.12.0 Acknowledgments
942 ----------------------
943 The Evergreen project would like to acknowledge the following
944 organizations that commissioned developments in this release of
945 Evergreen:
946
947 * Bibliomation
948 * British Columbia Libraries Cooperative
949 * C/W MARS
950 * Georgia PINES
951 * King County Library System
952 * Linn Libraries Consortium
953 * MassLNC
954 * Pennsylvania Integrated Library System
955 * Pioneer Library System
956
957 We would also like to thank the following individuals who contributed
958 code, translations, documentations patches and tests to this release of
959 Evergreen:
960
961 * Adam Bowling
962 * Anahi Valdez
963 * Ben Shum
964 * Bill Erickson
965 * Billy Horn
966 * Blake Henderson
967 * Bob Wicksall
968 * Chris Sharp
969 * Christine Burns
970 * Christine Morgan
971 * Clare Sobotka
972 * Dan Pearl
973 * Dan Scott
974 * Dan Wells
975 * Darrell Rodgers
976 * Debbie Luchenbill
977 * Eva Cerninakova
978 * Fares Othman
979 * Galen Charlton
980 * Jakub Kotrla
981 * Jane Sandberg
982 * Jason Boyer
983 * Jason Etheridge
984 * Jason Stephenson
985 * Jeanette Lundgren
986 * Jeff Davis
987 * Jeff Godin
988 * Jennifer Pringle
989 * Jillianne Presley
990 * Jim Keenan
991 * Job Diógenes Ribeiro Borges
992 * Jonathan Schatz
993 * Josh Stompro
994 * Kate Butler
995 * Kathy Lussier
996 * Kyle Huckins
997 * Linda Jansová 
998 * Michele Morgan
999 * Michelle Purcell
1000 * Mike Rylander
1001 * Nawras Othman
1002 * Remington Steed
1003 * Rogan Hamby
1004 * Terran McCanna
1005 * Thomas Berezansky
1006 * Victoria Lewis
1007
1008 We also thank the following organizations whose employees contributed
1009 patches:
1010
1011 * British Columbia Libraries Cooperative
1012 * Calvin College
1013 * Catalyst DevWorks
1014 * C/W MARS
1015 * Emerald Data Networks, Inc.
1016 * Equinox Open Library Initiative
1017 * Georgia PINES
1018 * Indiana State Library
1019 * The Institute for the Study of Totalitarian Regimes, Prague
1020 * Jabok Library
1021 * Jordanian Library and Information Association
1022 * King County Library System
1023 * Lake Agassiz Regional Library
1024 * Laurentian University
1025 * Linn-Benton Community College
1026 * MassLNC
1027 * Merrimack Valley Library Consortium
1028 * MOBIUS Consortium
1029 * North of Boston Library Exchange
1030 * Pioneer Library System
1031 * Rodgers Memorial Library
1032 * Sigio
1033 * Traverse Area District Library
1034
1035
1036 We regret any omissions.  If a contributor has been inadvertently
1037 missed, please open a bug at https://bugs.launchpad.net/evergreen/
1038 with a correction.
1039